* 웹서비스 프로젝트 구축방법론 *

.

1. 정의

   - 웹서비스를 구축하려고 하려고 하면 웹서비스와 관련된 java 소스를 개발해야 된다.

     이 웹서비스용 java소스를 어디에 구축 하는게 좋을지 나름 내 생각을 정리 했다.

   - 2일동안 테스트 해본 결과물이다. 

 

2. 아래 설명을 보기 전 선행 학습

   - 웹서비스 서버(Server)단 구축 예제 샘플 따라 하기

   - 웹서비스 클라이언트(Client)단 구축 예제 샘플 따라 하기

 

3. axis2를 이용해서 webservice 정상 환경 

   a. eclipse : Indigo  (Build id : 20120216-1857)
      jdk : 1.6.0_45
      tomcat : 6.0
      axis2 : 1.7.9
   b. eclipse : Helios (Build id : 20100917-0705)
      jdk : 1.6.0_45
      tomcat : jeus 6.0
      axis2 : 1.6.2 ~ 1.7.9 까지 모두 가능

   c. eclipse : 2021-12 (4.22.0)
      jdk : 17.0.2
      tomcat : tomcat 9.0
      axis2 : 1.7.9

 

4. 웹서비스 서버(Server)단 구축 프로젝트

    a. 예, 기 존재 하는 인사급여 프로젝트(hr)에 웹서비스를 구축하다고 생각 하고 설명

       o  웹서비스 목록 : 부서조회, 사원조회

 

       > eclipse에 hr 프로젝트가 존재 한다.

       > hr 프로젝트에  서버용 웹서비스 java 파일을 만들어 /src/java/main/webservice/EmpSearch.java 을 만들었다.

       > EmpSearch.java 파일 -> wizard를 이용해  webservice를 생성한다.

       > wizard 결과물로 : /webapp/WEB-INF/services/....    하위폴더에 

                                 웹서비스와 관계가 없는 hr 프로젝트 모든 java 소스가 compile되어 생성된다.

                                 물론, 이때 EmpSearch.java 와 관련 없는 hr 업무 class들은 모두 삭제 하면 된다.

                                 하지만, 개발 하다보면 여러번 수정등을 해야 하기 때문에 삭제도 계속 해줘야 된다.

     b. 결론,

        - 웹서비스 서버(Server)용 소스는 별도 프로젝트를 만들어서 진행한다.

        - 업무용 hr 프로젝트 별개로 hrWS 프로젝트를 만들어

           이곳에 EmpSearch.java(웹서비스 서버용 소스)를 개발한다.

        - 참고, 부서 검색용 웹서비스가 필요하게 되면 DeptSearch.java도 개발 해야 된다.

           이때 DeptSearch.java 파일을 이용해 webservice를 생성하게 되면 Empsearch.class들도 생성 된다.

           EmpSearch관련된 package들을 삭제 하면 된다.

 

      c. 테스트된 Project로 확인

         * 아래 이미지를 보면

           - DeptSearchCmd.java , EmpSearchCmd.java  2개의 서버용 웹서비스가 존재한다.

           - DeptSearchCmd.java , EmpSearchCmd.java 2개 각각 > create web service wizard를 통해 진행한다.

           - 결과물로 > /WEB-INF/services/  하위로 각각 생성된다.

           - 이때, 이슈 

              o /WEB-INF/services/DeptSearchCmd/ 하위로는  부서검색 웹서비스용인데, emp class들도 생성된다.

                 /WEB-INF/services/EmpSearchCmd/ 하위로는  사원검색 웹서비스용인데, dept class들도 생성된다.

              o 그래서 필요없는 폴더들을 각각 삭제해줘야 된다.

                 삭제 안해도 되지만, 사용하지 않고 존재 하는 class들이기 때문에 삭제하는게 유지보수상 편하다.

           ** 최종 결론 : 이와 같은 이유로 웹서비스 서버단 소스들은 별로 프로젝트를 만들어서 개발하는게 좋을거 같다.

5. 웹서비스 클라이언트(Client)단 구축 프로젝트

     a. 웹서비스 클라이언트(Client)단 소스를 개발 시 별도 프로젝트를 만들어서 진행하는게 좋다.

     b. 서버단에서 받은 wsdl 파일을 이용해 

        generate web service client  Wizard를 이용해 stub.java 파일을 생성하게 되는데

        이때 필요없는 jar, 폴더등이 생성된다.

        필요없는 jar, 폴더등을 삭제 해도 되지만, 

        wsdl파일이 여러번 수정되게 되면 삭제 작업도 여러번 해줘야 된다.

     c. Generate web service client  Wizard로 자동 생성된 폴더 구조 (전 -> 후)

         - 오른쪽 이미지 (wizard 처리 후)

         - web service Client프로젝트에서는 자동생성된 폴더들은 모두 사용되지 않는다.

            만약, 업무용 프로젝트에 아래 같은 폴더들이 생성된다면.. 매번 삭제하기도 힘들고

            삭제하지 않는다면.. 유지보수 하기도 힘들어 진다.

         - 결론, Web Service Client 소스들은 별도 프로젝트를 만들어서 관리하는게 좋을거 같다.

                   이때는 필요없는 폴더들은 삭제하지 않아도 될거 같다.

                   딱 client source들만 있기 때문이다.

.

 

 

Posted by 농부지기
,