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

.

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 농부지기
,

* axis2 Webservice 오류 모음집 *

 

1. Tomcat start 도중 오류

   a. 오류 : java.lang.ClassNotFoundException: javax.servlet.http.HttpServlet

      발생시점 : tomcat start시점

      사유 : Server용 웹서비스는 tomcat10.0 일 경우 위와 같은 오류 발생

      해결 : tomcat 9 version을 사용

 

   b. 오류 : java.lang.ClassNotFoundException: javax.activation.DataSource

      발생시점 : tomcat start시점

      사유 : Server용 웹서비스는 axis2 1.8.0 version에서 위와 같은 오류 발생

      해결 : axis2 1.7.9 version을 사용

 

   c. 오류 : SEVERE: StandardWrapper.Throwable
                java.lang.NoClassDefFoundError: org/apache/ws/commons/schema/resolver/URIResolver.

      발생시점 : tomcat start시점

      사유 : project에 webservice 환경 구축 도중 xmlschema-core-2.2.1.jar 파일이 자동 복사 되지 않아 발생

      해결 : C:\axis2\axis2-1.7.9-bin\lib\xmlschema-core-2.2.1.jar  파일을 

                >> Project > /webapp/WEB-INF/lib  밑으로 복사 한다.

2. java소스를 이용해서 'Create Web Service' Wizard 수행중 오류 

   a. 오류 : Exception occurred while reading or writing file {0} The Axis2 facets cannot be installed since the Axis2 runtime location has not been set.

               Go to the Web Services preference page and set the Axis2 runtime location under Axis2 Preferences.

   b. 사유 : eclipse에 Axis2 rentime이 연결되어 있지 않아서 발생

   c. 해결 : eclipse

               -> Window > Preferences

               -> Web Services > Axis2 Preferences > Axis2 Runtime tab.

               -> Axis2 runtime location [ axis2 folder 연결  ] 

3. wsdl 파일을 이용해 stub 소스 생성 도중 오류

   a. 오류 : The Apache Axis2 Web service runtime in Tomcat v10.0 Server does not support the client project axis2Client.

       발생시점 : wsdl 파일을 이용해 Generate Client Wizard 수행 시

       해결 : Dynamic Web Module Version 으로  2.5 또는 2.4 로 변경한다. (3.0도 가능할 듯)

 

4. 자동생성된 stub.java 소스에서 compile 오류

   a. 오류1 : The package javax.xml.namespace is accessible from more than one module: <unnamed>, java.xml

      오류2 : The package javax.xml.stream is accessible from more than one module: <unnamed>, java.xml 

      발생시점 : wsdl 파일을 이용해 Generate Client Wizard 수행 시 후 생성된 stub.java 소스

      사유 : javax.xml....  class가  2개의 jar에서 존재

              (jdk에 존재 하는 jar)와,  (jaxrpc.jar,   geronimo-stax-api_1.0_spec-1.0.1.jar)

      해결 : jaxrpc.jar,   geronimo-stax-api_1.0_spec-1.0.1.jar   이 2개의 jar 삭제

 

5. client에서 Server 호출도중 오류

   a. 오류 : The ServiceClass object does not implement the required method in the following form: OMElement searchEmp(OMElement e)

       발생시점 : client에서 Server호출도중 오류

       사유 : server단 프로젝트 > .. > services.xml

                자동 생성된 services.xml 파일 내부 내용 중 경로가 잘 못 되어 있다.

        해결방법 : services.xml 중

 

 

 

6. Webg Service Client Wizard 수행 중

   a. 오류 : 아래 이미지처럼 - Service Name, Port Name, Custom package name 등이 공백으로 보여짐

      오류내용 : Exception occurred during code generation for WSDL  : null
    java.lang.NullPointerException: Cannot invoke "java.lang.Class.getConstructor(java.lang.Class[])" because "WSDL11ToAxisServiceBuilderClass" is null

      해결방법 : 1. Preferences > Axis2 Preferences > Axis2 runtime location [ ] 위치를 지운 후

                        eclipse restart

                     2. C:\axis2\axis2-1.7.9-bin\  하위 파일들을 삭제 후  [axis2-1.7.9-bin.zip] 다시 압축 해제

                        Preferences > Axis2 Preferences > Axis2 runtime location [ ] 위치를 지운 후

                        eclipse restart

        이유 : 특정한 환경에서 갑자기 eclipse가 이상작동함

Posted by 농부지기
,

* SoapUI 설치 및 Webservice server테스트 *

1. 정의

    - client project를 개발하지 않고도 webservice server project를 호출하여 테스트 할 수 있다.

2. 다운로드

    - Soap UI Pro 버전은 유료

    - Soap UI Open Source 버전은 무료 (?)  (2022.02.04일 기준 파일명 : SoapUI-x64-5.7.0.exe)

    - 다운로드 URL

 

3. 설치 방법

    - SoapUI-x64-5.7.0.exe 파일 실행

    - 실행 후  몇 단계는 [next]

     - Soap UI만 설치.  나머진 해제

4. Web Service 테스트

   - New SOAP Project 생성

      . Initial WSDL 경로 찾는 방법 : 아래에 존재

5. Initial WSDL 경로 찾아 내기

    a. web service Server Project 수행 (http://localhost:8080/axis2Server/axis2-web/)

                  - 테스트를 원하는 Webservice 클릭

           - 아래처럼 : wsdl 파일 내용(xml)이 보이는 경로를 Soup UI의 Initial wsdl 파일 경로가 된다

 

6. 위에서 테스트 했던 webservice server용 Project

     - Project 내용 보러 가기

 

 

Posted by 농부지기
,

* (eclipse)웹서비스 프로젝트 생성 샘플 1 - Client용 (axis2) *

* (eclipse)웹서비스 프로젝트 생성 샘플 1 - Server용 (axis2) *

1. 환경

    -  jdk : 17.0.2
    - eclipse : Version:2021-12(4.22.0),    Build id : 20211202-1639
    - axis2 : axis2-1.7.9
    - tomcat : 10.0.16  (9.0.8 도 가능) (9 버전으로 테스트 하는게 도 용이)

 

    - 실재 프로젝트에선 VO를 받고, VO를 return하는 경우로 진행하기 때문에 이와 같이 개발.

 

2. download

    - axis2 : new http://axis.apache.org/axis2/java/core/download.cgi 

               old : https://archive.apache.org/dist/axis/axis2/java/core/

 

    - 아래 샘플용 프로젝트 

              o 소스용 war 파일 다운로드

axis2Client.war
0.30MB

                o /WEB-INF/lib/  하위 jar 파일들은   파일 용량이 10M 이상으로 위 war파일에 존재 하지 않음

                  Project를 구축하고 wsdl 파일을 이용해서 stub.java파일을 만들면 필요한 jar들은 자동 생성 된다.

 

3. eclipse  환경설정

    a. download받은 axis2-1.8.0-bin.zip  파일을 압축 해제
    b. eclipse > Windows > Preferences > Web Services > Axis2 Preferences 에 폴더 위치 설정

 

 

3. Project생성 및 Project 환경설정

    a. Project생성 - Client용

 b. web.xml

       - 상단 아래와 같이 (;) 콜론을 삽입한다.

   c. jar 복사
      - C:\axis2\axis2-1.7.9-bin\lib\xmlschema-core-2.2.1.jar  파일을 

                >> Project > /webapp/WEB-INF/lib  밑으로 복사 한다.

      - jstl-1.2.jar 파일 웹상에서 download 후 
                >> Project > /webapp/WEB-INF/lib  밑으로 복사 한다.
                >> 이 jar를 복사 해야 jsp파일에서  (x) 표시 오류가 없어 진다.

jstl-1.2.jar
0.40MB

4. wsdl 파일을 이용해서 stub 파일 생성

    a. Client 개발팀으로 부터 wsdl 파일을 받는다.
       wsdl 파일은  생성한 프로젝트에 적당한 폴더를 생성 후 복사 한다.

    b. stub 파일 생성
        > EmpSearch.wsdl 
        > 오른쪽 마우스 클릭
        > Web Services
        > Generate Client

        c. 자동생성된 stub.java 위치 이동

            - stub.java 소스가 /src/main/java  package 하위로 생성되어야 하는데 /java/ 밑으로 생성 된다.

            - /src/main/java/... 밑으로 이동 시킨다.

            - 이동 후 stub.java소스에 오류가 발생 하면 
               jaxrpc.jar,   geronimo-stax-api_1.0_spec-1.0.1.jar   이 2개의 jar를 삭제 한다.

            - 예전 eclipse에서는 정상적으로 /src/ package 하위로 생성 된다.

 

     d. web.xml 파일 수정

        - web.xml 파일 내부에 client project에서 필요없는 tag들을 삭제 한다.

        - wizard를 이용해 stub.java 파일이 생성되는대

          이때 web.xml 파일 내부에 webservice server용 tag들이 추가 된다.

          client용 project에서는 필요가 없다.

        - 삭제내용 : Aixs 관련 tag들을 삭제 한다.

 

5. webservice client 소스 목록

    - WebServiceCall.java : stub.java 소스를 활용하여 서버 호출 등을 담당하는 client main java source

    - EmpSearchCmdStub.java : eclipse > Webservice Generate Client Wizard를 이용해 생성된 client stub java source

 

6. 테스트 및 결과

    - Tomcat10, Tomcat9 2개의 was를 사용시 port를 반드시 중복되지 않게 수정해야 된다.

    - WebServiceCall.java > 오른쪽 마우스 > Run As > 2. Java Application

 

9. 소스 내용

    - EmpSearchCmdStub.java 소스는 자동생성된 파일이기에 생략

    - WebServiceCall.java

    - targetEndpoint 찾는방법 : 위쪽 이미지중 Generate Client Wizard 마지막 단계에서

                                        /Service Name/Port Name 을 기준으로 만들면 된다.

     

 

 

* 웹서비스 프로젝트 생성 샘플 1 - Server용 (axis2) *

* 개발도중 오류 발생 시 해결방법 *

 

 

Posted by 농부지기
,

* (eclipse)웹서비스 프로젝트 생성 샘플 1 - Server용 (axis2) *

* (eclipse)웹서비스 프로젝트 생성 샘플 1 - Client용 (axis2) *

 

1. 환경

    -  jdk : 17.0.2
    - eclipse : Version:2021-12(4.22.0),    Build id : 20211202-1639
    - axis2 : axis2-1.7.9
    - tomcat 9.0.8

 

    - 실재 프로젝트에선 VO를 받고, VO를 return하는 경우로 진행하기 때문에 이와 같이 개발.

 

2. download

    - axis2 : new http://axis.apache.org/axis2/java/core/download.cgi 

               old : https://archive.apache.org/dist/axis/axis2/java/core/

 

    - 아래 샘플용 프로젝트 

              o 소스용 war 파일 다운로드

axis2Server.war
0.31MB

                o /WEB-INF/lib/  하위 jar 파일들은   파일 용량이 10M 이상으로 위 war파일에 존재 하지 않음

                  Project를 구축하고 axis2 환경설정으로 하면 필요한 jar들은 자동 생성 된다.

 

3. eclipse  환경설정

    a. download받은 axis2-1.8.0-bin.zip  파일을 압축 해제
    b. eclipse > Windows > Preferences > Web Services > Axis2 Preferences 에 폴더 위치 설정

 

3. Project생성 및 Project 환경설정

   a. Project생성 - Server용

   b. Project에서 axis2 server용 환경설정
      -  이 과정은 webservice개발중 server용인 경우에만 수행

     - axis2 환경설정 후 Project 구성 결과

   c. web.xml

       - 상단 아래와 같이 (;) 콜론을 삽입한다.

   d. jar 복사
      - C:\axis2\axis2-1.7.9-bin\lib\xmlschema-core-2.2.1.jar  파일을 

                >> Project > /webapp/WEB-INF/lib  밑으로 복사 한다.

       - jstl-1.2.jar 파일 웹상에서 download 후 
                >> Project > /webapp/WEB-INF/lib  밑으로 복사 한다.
                >> 이 jar를 복사 해야 jsp파일에서  (x) 표시 오류가 없어 진다.

jstl-1.2.jar
0.40MB

5. axis2  Server 정상 구동 확인

   a. tomcat start
   b. http://localhost:8080/axis2Server/axis2-web/  수행하면  아래 와 같은 화면이 나오면 정상

 

6. webservice 서버소스 개발

    - 업무내용 : client단에서 입사일자(from~to)를 받아
                    자료를 조회 후
                    해당 결과를 client로 넘겨 준다.
    - 소스 목록 : EmpRequestVO.java     - client단에서 넘겨받은 parameter를 받을 VO
                     EmpRecordVO.java       - 사원 검색결과를 저장할 vo.
                     EmpResponseVO.java    - client로 넘겨줄 vo
                                                       사원 검색결과는 여러건이 된다.  배열로 객체를 생성 후 set한다.

                     EmpSearchCmd.java      - web service 호출될 main java

                     EmpSearchBiz.java         - 업무 개발용 Biz

      - 소스 내용 : 하단에 존재  

 

7. wsdl 파일 생성

    a. 첫번째 단계

       EmpSearchCmd.java  파일 선택
       > 오른쪽 마우스 클릭 
       > Web Services > Create Web Service

    b. 첫번째 단계 결과

        - /WEB-INF/services/ 하위로 아래와 같이  폴더 및 파일이 생성 된다.

    c. 두번째 단계

       

 

               > 페이지 소스 보기
               > Ctrl + A > Ctrl + C
               > EmpSearch.wsdl  파일 생성 후  붙여 넣기
                  (참고, 저장 시 상단 첫줄, 하단 마지막줄  빈 줄은 삭제 한다.)

               > EmpSearch.wsdl 파일을 client개발자에게 전달한다.

 

    d. 자동생성된 services.xml 파일 보정

        - 위치 : /webapp/WEB-INF/services/EmpSearchCmd/META-INF/services.xml

 

 

99. 소스 내용

   - EmpRequestVO.java

   

  - EmpRecordVO.java

   

  - EmpResponseVO.java

   

  - EmpSearchCmd.java

   

  - EmpSearchBiz.java

   

 

 

* 웹서비스 프로젝트 생성 샘플 1 - Client용 (axis2) *

* 개발도중 오류 발생 시 해결방법 *

Posted by 농부지기
,

[ Java-Reflection 예제1 ]

 

1. Reflection 예제 3가지

    1. VO 객체를 LData 객체로 전환    (VO객체를 HashMap객체로 전환)

    2. LData값을 VO객채로 전환         (HashMap객체를 VO객체로 전환)

    3. LMultiData값을 VO객채로 전환  (HashMap array객체를 VO array객체로 전환)

 

2. 소스 예제 3가지

'자바(java) > Reflection (리플렉션)' 카테고리의 다른 글

Java.inflection-기초 소스  (0) 2017.02.20
Posted by 농부지기
,

* 웹서비스 SOAP방식-Server단 개발 (* 별도 war 배포방식) *

 

1. 별도 war 배포방식
   a. 정의
      1. 구글 검색을 통해서 Server단 개발방법을 보면 axis2를 배포하면서 웹서비스 목록을 보여주는 방식이다.
         예)http://egloos.zum.com/js7309/v/10644853
         하지만 이번 war배포방식은 기존 프로젝트와 관계 없이 별도 프로젝트를 생성해서 개발 후 war파일을 만들어 배포하면 된다.
         꼭 별도 프로젝트를 만들지 않고 기존 프로젝트 내부에 개발해도 된다.
   b. war를 만들기 위해 ant를 이용(아래에서 설명)
   
2. 웹서비스 server단 개발방법 및 절차
   a. 별도 Web Dynamic Project생성
      - Project생성도중  [ ] Aixs2 Web Services는 체크 안해도 된다.
   b. client단에서 호출시 필요한 자료를 전송해줄 server단 업무 소스(java)개발
      - 기본개발소스
        . Cmd : client단에서 soap을 이용해서 처음 호출 되는  server단 java source
        . Biz : server단 개발업무 소스
        . ReqeustVO : client에서 호출시 필요한 argument
        . ResponseVO : client단에서 호출시 넘겨받은 argument를 이용해

                            db에서 자료를 조회 후 setting할 VO. 이 vo를 client로 넘겨준다.
        . RecordVO : 만약, client단으로 자료를 넘겨줄 경우 여러레코드가 존재 할 경우 해당 되는 VO
   c. war파일을 만들기 위한 폴더 구조
      - soapWar - aar
                - axis2_war - axis2

                                      ....

                                      - WEB/INF/services

                                      ....
                            - EmpWebServices
                            - war_app
                            - war_dev
                            - war_local
                - META-INF
                - wsdl
                - ant_build_prod.xml
                  ant_build_dev.xml
                  ant_build_local.xml

3. war파일을 만들기 위한 폴더 구조 설명
      - soapWar - aar                        : war파일 만들기 전 웹서비스 aar 압축파일 위치하는 곳

                                                   이 aar압축파일 내부에 server단 class파일들이 포함되어 있다.
                - axis2_war - axis2          : axis2.war 파일을 압축해제된 폴더 및 파일들을 위치 시킴
                                      ....

                                      - WEB/INF/services : 배포될 aar파일 위치 (예, EmpWebServices.aar )

                                      ....

                            - EmpWebServices : 임시용. java 파일을 컴파일을 class파일을 들을 위치시킬 폴더
                            - war_prod       : 운영서버에 배포할 war파일이 위치할 폴더
                            - war_dev        : 개발서버에 배포할 war파일이 위치할 폴더
                            - war_local      : 로컬서버에 배포할 war파일이 위치할 폴더
                - META-INF                   : 웹서비스 목록 및 java package경로
                - wsdl                       : 임시용. server단 개발자에게 넘겨줄 wsdl을 위치시킬 폴더
                - ant_build_prod.xml         : 운영서버에 배포할 war파일 생성용 ant builder
                  ant_build_dev.xml          : 개발서버에 배포할 war파일 생성용 ant builder
                  ant_build_local.xml        : 로컬서버에 배포할 war파일 생성용 ant builder

 

4. 아래는 소스
   1. Server단 소스
   2. /META-INF/services.xml 파일
   3. /axis2_war/axis2/WEB-INF/web.xml
   4. ant_build_local.xml   (ant설명은 별도 카테고리에 존재)

 

5. ant파일 실행 과정
   1. java소스 컴파일시 필요한 jar파일 위치 설정
   2. class파일들이 위치할 필요한 폴더들 생성
   3. java소스 컴파일
   4. 컴파일된 class파일들을 *.aar 압축
   5. *.aar파일을 특정위치로 copy
   6. *.war압축파일 생성


6. Server단 소스

 

7. /META-INF/services.xml 파일 (웹서비스가 2개 인경우 예제)


8. /axis2_war/axis2/WEB-INF/web.xml


9. ant_build_local.xml

 

Posted by 농부지기
,

* 웹서비스 SOAP방식-Client기준 개발 *

 

0. 웹서비스 client개발방법 및 절차
   a. aixs.jar 파일 배포(lib폴더에 복사)
   b. 웹서비스 server단 개발자에게 wsdl파일을 받는다.
   c. wsdl을 이용해서 axis client생성 interface모듈을 자동생성 (보통 java소스 8~10개쯤 생성됨)
   d. client 업무단에서 interface모듈을 호출하는 java 개발

 

1. 웹서비스 Client란

    - 자료요청자 -> 자료수신자

      . 자료요청자 사이드를 Cllient안으로 본다.

      . 자료수신자 사이드를 Server단으로 본다.

 

2. axis jar배포

    - lib 폴더에  axis.jar 파일을 배포(copy)한다.

 

3. WSDL 받기

    - 웹서비스 서버단 개발 담당자가 WSDL을 만들어서 Client개발담당자에게 전달한다.

 

4. 웹서비스 Client interface모듈 자동생성

    ㄱ. 생성과정

       -> eclipse

       -> 전달받은 WSDL 파일 선택 -> 오른쪽 마우스 클릭

       -> Web Service -> Web Service Client

       -> Server runtime : Tomcat 또는 JEUS 선택

       -> Web service runtime : Apache Axis 또는  Apache Axis2 선택

                                        (Spring project이면 Apache CXF 2.x 선택)

   ㄴ. Client interface모듈 자동생성도중 이슈 및 해결방법

       - 오류내역 : Web service runtime 버전을 [Apache Axis2]로 선택 시 오류 발생 하는 경우

       - 해결방법

          a. 해당 프로젝트에서 Axis2 web service 모듈을 추가 한다.

             : eclipse -> Project -> 오른쪽 마우스 -> Properties

               -> Project Facets -> [v] Axis2 Web Services    선택 후 [적용]

          b.  위(a)작업도중 Axis2 web service 모듈을 추가가 안되는 경우

              Web service runtime -[Apache Axis] 를 선택 해서 Client interface 모듈을 생성한다.

              (참고, Axis2 버전으로 client모듈을 생성하는 경우에는 java소스의 package경로를 변경할 수 있지만

                       Axis  버전으로 client모듈을 생성하는 경우네느 java소스의 package경로를 변경할 수 없다.)

 

5. Client 개발 테스트 - proxy java class 사용 Sample

 

6. Client 개발 테스트 - stub java class 사용 Sample

Posted by 농부지기
,

* 웹서비스 환경 및 버전 *

1. jdk

   - jdk 1.6.0_31 : 버전에서 실패. 

                       web.xml에 웹서비스 관련 servlet container를 등록 후 was를 restart시키면 start도중 오류 발생

                        (servlet container 목록 :
                          org.apache.axis.transport.http.AxisServlet,  org.apache.axis.transport.http.AdminServlet)

   - jdk 1.6.0_45 : 웹서비스 정상 구동

 

2. 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



3. axis2 다운로드

    * 모든 버전 다운로드 : https://archive.apache.org/dist/axis/axis2/java/core/

 

Posted by 농부지기
,

[java-json] 문자형 jsonarray값을 jsonarray객체로 변환

 

1. 예제 : 화면단에서  문자형 jsonarrary값을 받아서 java단에서 jsonarray객체로 변환후에 사용한다.

 

Posted by 농부지기
,