이번에는 WAS BMT를 준비하며 WebLogic JAX-WS 2.1 Spec 검증을 위한 테스트를 진행하였다.
Sample 어플리케이션을 만들기 위해 eclipse 환경에 Windows WebLogic 14.1.1 연동을 하여 Web Service 테스트하는 방법을 공유하려고 한다.
테스트를 하기 위한 환경은 아래와 같다.
###########################################
- Eclipse : eclipse-jee-2018-12-R-win32-x86_64
- OS : Windows 10 Pro 64bit
- WAS : weblogic 14.1.1
- JDK : Java 1.8.0_301
###########################################
이번 장에서는 weblogic 설치 및 eclipse와의 연동은 생략한다.
(weblogic과 eclipse 연동을 하려면 목차 "008. Eclipse에 [eclipse] WebLogic Server 12.2.1.4 연동하는 방법"을 참고하면 됨.)
1. Create New Web Service Project 생성 하기
: Oracle > WebLogic > Web Services > Web Service Project
2. Server-Side java 생성
: Server-WebService > src > New > WebLogic Web Service 선택
* Web Service 소스 코딩은 아래 내용 참고
: 간단하게 변수 2개를 받아 그 합계를 구하는 소스 구현
package com.ws; import javax.jws.*; @WebService public class Server_WebService { @WebResult(name = "Result") @WebMethod(operationName = "Adding") public int sum(@WebParam(name = "FirstNumaber") int n1, @WebParam(name = "SecondNumaber") int n2) { return n1 + n2; } } |
여기까지 잘 따라왔다면,
Server-Side의 Web-Service 어플리케이션 소스 개발이 완료된 것이다.
3. Server-Side 어플리케이션을 WebLogic 14.1.1 배포
: Project Explorer > Server-WebService > 우클릭 > Run As > Run on Server 선택 > Finish
콘솔 로그에서 웹로직 기동 확인 후, 관리콘솔 접속하면 아래와 같이 Web Service 어플리케이션이 정상적으로 배포된 것을 확인 할 수 있다.
4. WebLogic 관리콘솔에서 WSDL 확인
: 배치 > Server-WebService > 테스트 > 테스트지점 > ?WSDL 선택
WSDL 주소 : http://localhost:7001/Server-WebService/Server_WebServiceService?WSDL
* xml 형식의 WSDL을 통해 해당 Web Service에 대한 정보를 취득할 수 있다.
* Client-Side에서는 해당 WSDL 주소만을 가지고 어플리케이션을 가져다 사용 가능하다.
This XML file does not appear to have any style information associated with it. The document tree is shown below. <definitions xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://www.w3.org/ns/ws-policy" xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://ws.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://ws.com/" name="Server_WebServiceService"> <types> <xsd:schema> <xsd:import namespace="http://ws.com/" schemaLocation="http://192.168.56.1:7001/Server-WebService/Server_WebServiceService?xsd=1"/> </xsd:schema> </types> <message name="Adding"> <part name="parameters" element="tns:Adding"/> </message> <message name="AddingResponse"> <part name="parameters" element="tns:AddingResponse"/> </message> <portType name="Server_WebService"> <operation name="Adding"> <input wsam:Action="http://ws.com/Server_WebService/AddingRequest" message="tns:Adding"/> <output wsam:Action="http://ws.com/Server_WebService/AddingResponse" message="tns:AddingResponse"/> </operation> </portType> <binding name="Server_WebServicePortBinding" type="tns:Server_WebService"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> <operation name="Adding"> <soap:operation soapAction=""/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding> <service name="Server_WebServiceService"> <port name="Server_WebServicePort" binding="tns:Server_WebServicePortBinding"> <soap:address location="http://192.168.56.1:7001/Server-WebService/Server_WebServiceService"/> </port> </service> </definitions> |
5. Web Service Client 파일 생성
: Project Explorer > Server-WebService > 우클릭 > Oracle > WebLogic > Web Services > Web Service Client 선택
이후 WSDL Location Remote에 위의 WSDL 주소를 입력하고 Verify WSDL로 검증하고 Next 한다.
* 아래 내용 진행할 때, Java Library Path를 잘 확인하고 진행해야 한다.
나의 경우에는 Java Path가 제대로 잡히지 않아 계속해서 "Generated ant script for ClientGen failed ;see details." 에러를 봤다.
* 이후 Client에 배포할 jar 파일의 위치를 다시 한번 확인한다.
Next 이후 다시 한번 Remote WSDL의 위치를 지정하여 준다. Finish..
* Finish 를 선택하면 아래와 같이 해당 위치에 Server_WebService라는 service.jar 파일이 생성된다.
6. 테스트용 Java Project 생성
: File > New > Java Project
: Package Explorer > Client-WebService > 우클릭 > build path > Configure Build Path > Add External JARS.. > Server_WebServiceService.jar 파일 선택
: src > java class 생성
: 소스 내용은 아래와 같다.
package com.client; import com.ws.*; public class Client_WebService { public static void main(String[] args) throws Throwable { // TODO Auto-generated method stub ServerWebServiceService swss = new ServerWebServiceService(); ServerWebService sws = swss.getServerWebServicePort(); int sum = sws.adding(10, 20); System.out.println("합계는 : " + sum); } } |
7. Java Project Test Run
: Package Explorer > Client-WebService > 우클릭 > Run As > Java Application
* 실제로 Client에서 adding 이라는 메소드가 없지만, WSDL로 가져온 jar파일로 import하여 소스를 가져다 쓸 수 있다.
<< 정리 >>
다시 정리하자면,
만약 내가 그냥 개발자라면, 제공되는 WSDL만 있다면
- eclipse를 통해 Web Service Project를 먼저 생성할 것이다. (그래야만, WEB-INF/lib/xxxx.jar 파일 형식으로 어플리케이션 jar를 다운받을 수 있기 때문이다.)
- 해당 Project를 통해 jar를 받으면, Java Project를 하나 생성하고 해당 프로젝트에서 외부 JARs 파일을 추가한다.
- 그리고 소스를 개발하며 해당 Jar를 import 하여 그 소스의 메소드들을 호출하여 편하게 개발이 가능할 것이다.
'개발공부 > Java' 카테고리의 다른 글
[Java] 03. 인스턴스 생성과 힙 메모리 (heap memory) (0) | 2021.11.17 |
---|---|
[Java] 02. 객체의 속성은 멤버변수로, 객체의 기능은 메서드로 구현한다.(feat 함수와 메서드 개념) (0) | 2021.11.17 |
[Java] 01. 객체와 객체 지향 프로그래밍의 의미 (0) | 2021.11.17 |
[eclipse] WebLogic Server 12.2.1.4 연동하는 방법 (0) | 2021.09.13 |
[eclipse] Dynamic Web Project가 없을 때 (0) | 2021.09.09 |