올해 초부터 웹서비스 쪽으로 공부를 했었는데, 항상 할 때마다 끝을 못 맺고 덮어두곤 하였습니다.
눈에 들어오지 않았습니다.
그렇게 시간이 흘러... 이클립스 RCP 로 개발한 어플리케이션과 WAS 와 연동을 해야 하는데 웹서비스를
쓰면 적당할 것 같아서 다시 자료들을 모아서 시작을 했는데 운이 좋게도 성공을 한 것 같습니다.
접기
JAX-WS 의 Tool 을 사용하기 위해서는 metro 를 다운받아야 합니다.
https://metro.dev.java.net/1.3/ 에 접속하여 다운을 받습니다.
다운받은 metro-1_3.jar 파일을 설치할 경로에 옮겨놓고 더블클릭으로 실행을 시킵니다.
알집을 설치한 경우에는 바로 실행이 안되니 콘솔을 띄우고 java -jar metro-1_3.jar 명령으로 실행시킵니다.
스크롤을 맨 아래로 내린 후 Accept 버튼을 클릭
아래와 같이 설치가 완료되었습니다.
환경 변수에 JAVA_HOME 과 METRO_HOME 을 설정합니다.
이클립스의 경우 환경변수를 추가했을 때는 이클립스를 재시작해야지 Ant 에서 인식을 합니다.
기존 로직이 있는 프로젝트에 SEI 를 만듭니다.
com.idstrust.wiseone.engine.gw.webservice.workflowform.WorkflowFormWebService.java
Ant 를 통해서 서버/클라이언트 소스를 배포하기 위해 build.xml 을 생성합니다.
아래 build.xml 의 deploy-server-jar target 을 실행하여 SEI 를 빌드합니다.
빌드된 서버쪽 jar 파일 내부를 보면 SEI 패키지 경로의 jaxws 서브패키지에 클래스들이 생성됩니다.
Spring 설정 xml 을 아래와 같이 구성합니다.
Spring 에서 제공하는 SimpleJaxWsServiceExporter 를 이용하여 서비스를 공개합니다.
WAS (Tomcat) 의 WEB-INF/lib 폴더에 서버쪽 jar 를 배포하고 web.xml 에 Spring 설정을 추가합니다.
서버를 실행시키고 http://localhost:9999/WorkflowFormWebService?wsdl 에 접속해서 아래와 같은 wsdl 이 나오면
서버쪽 배포는 성공한 것입니다.
이제는 클라이언트 쪽 소스를 만들어서 테스트를 해봐야겠죠?
build.xml 의 generate-WorkflowFormWebService target 을 실행시키면 클라이언트 소스가 jar로 묶여서 나옵니다.
jar 를 풀어서 보면 아래와 같은 파일들이 있습니다. 저기 아래보이는 WorkflowFormWebService 가 serviceInterface 입니다.
위에 있는 wsdl 파일을 참조하여 아래 내용을 채워 넣습니다.
클라이언트 소스 테스트는 아래와 같이...
접기
별도의 테스트 소스를 만들어서 올리고 싶지만 시간이 없는 관계로 이렇게 되었습니다.
나중에 시간이 되면 스크린캐스트로다가 샤샥...