WSDL 파일에서 JAX-WS 클라이언트 개발

JAX-WS(Java™ API for XML-Based Web Services) 도구에서는 WSDL(Web Services Description Language) 파일로 시작할 때 정적 JAX-WS 웹 서비스 클라이언트를 개발하는 데 필요한 Java 아티팩트 생성을 지원합니다.

시작하기 전에

WSDL 파일로 시작하여 JAX-WS 웹 서비스 개발에 대한 하향식 개발 접근 방식을 사용하는 경우 WSDL 파일에 대한 URL(Uniform Resource Locator)을 확보해야 합니다.

[Windows][z/OS]WSDL 파일이 로컬 파일인 경우, 해당 URL은 file:drive:\path\file_name.wsdl입니다.

[Linux][AIX][HP-UX][Solaris][IBM i]WSDL 파일이 로컬 파일인 경우, 해당 URL은 file:/path/file_name.wsdl입니다.

로컬 파일은 절대 또는 상대 파일 시스템 경로를 사용하여 지정할 수도 있습니다.

이 태스크 정보

JAX-WS에 대한 정적 클라이언트 프로그래밍 모델은 호출되는 동적 프록시 클라이언트입니다. 동적 프록시 클라이언트는 제공되는 서비스 엔드포인트 인터페이스에 기반하여 웹 서비스를 호출합니다. 프록시를 작성한 후에 클라이언트 애플리케이션은 해당 인터페이스의 표준 구현과 같이 프록시에서 메소드를 호출할 수 있습니다. 동적 프록시 프로그래밍 모델을 사용하는 JAX-WS 웹 서비스 클라이언트의 경우 JAX-WS 도구, wsimport를 사용하여 WSDL 파일을 처리하고 웹 서비스 클라이언트를 작성하는 데 사용된 이식 가능한 Java 아티팩트를 생성합니다. wsimport 도구를 사용하여 다음과 같은 이식 가능한 Java 아티팩트를 작성합니다.
  • 서비스 엔드포인트 인터페이스(SEI)
  • 서비스 클래스
  • wsdl:fault 클래스(있는 경우)에서 맵핑된 예외 클래스
  • XML 스키마 유형에서 맵핑된 Java 클래스에 해당되는 JAXB(Java Architecture for XML Binding)의 생성된 값 유형
지원된 구성 지원된 구성: wsimport, wsgen, schemagenxjc 명령행 도구는 z/OS® 플랫폼에서 지원되지 않습니다. 이 기능은 z/OS 플랫폼에서 실행 중인 WebSphere® Application Server에 제공된 어셈블리 도구에 의해 제공됩니다. 이러한 도구에 대해 자세히 학습하려면 JAX-WS 애플리케이션의 명령행 도구를 참조하십시오. sptcfg
우수 사례 우수 사례: WebSphere Application Server는 JAX-WS(Java API for XML-Based Web Services)와 JAXB(Java Architecture for XML Binding) 도구를 제공합니다. wsimport, wsgen, schemagenxjc 명령행 도구는 WebSphere Application Server Traditionalapp_server_root\bin\ 디렉토리에 있습니다. xjcschemagen 명령은 Liberty 프로파일의 app_server_root\jaxb\bin\ 디렉토리에 있습니다. 일부 경우에 WebSphere Application Server 및 JDK에서 제공된 두 가지 도구로 생성된 아티팩트는 동일한 레벨의 스펙을 지원합니다. 일반적으로 JDK 도구가 생성한 아티팩트는 부합하는 다른 런타임 환경에 이식 가능합니다. 그러나 WebSphere Application Server 환경 내에서 완벽한 통합을 하고 WebSphere Application Server에서만 지원되는 기능을 이용하려면 이 제품과 함께 제공되는 도구를 사용하는 것이 가장 좋습니다. JAX-WS 및 JAXB V2.2 도구를 활용하려면 app_server_root\bin\ 디렉토리에 있는 애플리케이션 서버와 함께 제공된 도구를 사용하십시오. bprac

명령행에서 도구를 사용하는 방법 외에도 Ant 빌드 환경에서 이 JAX-WS 도구를 호출할 수 있습니다. Ant 빌드 환경에서 com.sun.tools.ws.ant.WsImport Ant 태스크를 사용하여 wsimport 도구를 호출합니다. 올바르게 작동하려면 이 Ant 태스크에서는 ws_ant 스크립트를 사용하여 Ant를 호출해야 합니다.

프로시저

이식 가능한 클라이언트 아티팩트를 생성하려면 wsimport 명령을 실행하십시오. wsimport 도구는 app_server_root\bin\ 디렉토리에 있습니다.
[Windows]
app_server_root\bin\wsimport.bat wsdl_URL 
[AIX][HP-UX][Linux][Solaris]
app_server_root/bin/wsimport.sh wsdl_URL
[IBM i]
app_server_root/bin/wsimport wsdl_URL
(선택사항) wsimport 명령에서 다음 옵션을 사용하십시오.
  • 명령을 실행할 때 생성된 파일 목록을 보려면 -verbose 옵션을 사용하십시오.
  • -keep 옵션을 사용하여 생성된 Java 파일을 유지하십시오.
  • -wsdlLocation 옵션을 사용하여 WSDL 파일의 위치를 지정하십시오.
    우수 사례 우수 사례: 다른 시스템에 이식 가능한 JAX-WS 웹 서비스 클라이언트 엔터프라이즈 아카이브(EAR) 파일을 생성하도록 보장하는 우수 사례는, 웹 서비스 클라이언트 Java 아카이브(JAR) 파일 또는 웹 애플리케이션 아카이브(WAR) 파일과 같은 애플리케이션 모듈에서 WSDL 문서를 패키지하는 것입니다. -wsdllocation 어노테이션 속성을 사용하여 WSDL 파일의 위치에 대한 상대 URI를 지정할 수 있습니다. 예를 들어, MyService.wsdl 파일이 META-INF/wsdl/ 디렉토리에 있는 경우 wsimport 도구를 실행하고 -wsdllocation 옵션을 사용하여 WSDL 파일의 위치에 사용할 값을 지정하십시오. 그러면, 생성된 아티팩트가 관리 콘솔에 애플리케이션을 로드할 때 필요한 올바른 -wsdllocation 정보를 포함할 수 있습니다.
    wsimport -keep -wsdllocation /META-INF/wsdl/MyService.wsdl
    bprac
  • 사용자 정의를 포함하는 외부 바인딩 파일을 지정하도록 WSDL 또는 스키마 사용자 정의를 사용하는 경우 -b 옵션을 사용합니다.

    비동기 맵핑 또는 첨부 파일을 사용하도록 WSDL 파일에서 바인딩을 사용자 정의할 수 있습니다. 비동기 인터페이스를 생성하려면 클라이언트 측 전용 사용자 정의 enableAsyncMapping 바인딩 선언을 wsdl:definitions 요소 또는 WSDL 파일에 정의된 외부 바인딩 파일에 추가합니다. 사용자 정의 클라이언트 또는 서버 바인딩 파일에서 enableMIMEContent 바인딩 선언을 사용하여 기본 mime:content 맵핑 규칙을 사용하거나 사용하지 않습니다. 사용자 정의 바인딩 선언에 대한 추가 정보는 8장, JAX-WS 스펙을 참조하십시오.

이 명령 및 지정할 수 있는 추가 옵션에 대해 자세히 학습하려면 wsimport 명령을 참조하십시오.

결과

JAX-WS 웹 서비스를 호출할 수 있는 JAX-WS 클라이언트를 작성하도록 생성된 Java 아티팩트가 있습니다. wsimport 명령에 대한 사용법, 구문, 매개변수에 대해 자세히 학습하려면 JAX-WS 애플리케이션에 대한 wsimport 명령 문서를 참조하십시오.

다음 예제에서는 wsimport 명령을 사용하여 이식 가능한 아티팩트를 생성하도록 샘플 ping.wsdl 파일을 처리하는 방법을 보여줍니다.
  1. 다음 ping.wsdl 파일을 임시 디렉토리에 복사하십시오.
    <?xml version="1.0" encoding="UTF-8"?>
    <!--
     * This program can be used, run, copied, modified and distributed
     * without royalty for the purpose of developing, using, marketing, or distributing.
     -->
    <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    	xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    	xmlns:tns="http://com/ibm/was/wssample/sei/ping/"
    	xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="PingService"
    	targetNamespace="http://com/ibm/was/wssample/sei/ping/">
    	<wsdl:types>
    		<xsd:schema
    			targetNamespace="http://com/ibm/was/wssample/sei/ping/"
    			xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    
    
    			<xsd:element name="pingStringInput">
    				<xsd:complexType>
    					<xsd:sequence>
    												<xsd:element name="pingInput" type="xsd:string" />
    					</xsd:sequence>
    				</xsd:complexType>
    			</xsd:element>
    		</xsd:schema>
    	</wsdl:types>
    	<wsdl:message name="pingOperationRequest">
    		<wsdl:part element="tns:pingStringInput" name="parameter" />
    	</wsdl:message>
    	<wsdl:portType name="PingServicePortType">
    		<wsdl:operation name="pingOperation">
    			<wsdl:input message="tns:pingOperationRequest" />
    
    		</wsdl:operation>
    	</wsdl:portType>
    	<wsdl:binding name="PingSOAP" type="tns:PingServicePortType">
    				<soap:binding style="document"
    						transport="http://schemas.xmlsoap.org/soap/http" />
    		<wsdl:operation name="pingOperation">
    			<soap:operation soapAction="pingOperation" style="document" />
    			<wsdl:input>
    				<soap:body use="literal" />
    			</wsdl:input>
    		</wsdl:operation>
    	</wsdl:binding>
    	<wsdl:service name="PingService">
    		<wsdl:port binding="tns:PingSOAP" name="PingServicePort">
    			<soap:address
    				location="http://localhost:9080/WSSampleSei/PingService" />
    		</wsdl:port>
    	</wsdl:service>
    </wsdl:definitions>
  2. app_server_root\bin\ 디렉토리에서 wsimport 명령을 실행하십시오.
    [Windows]
    app_server_root\bin\wsimport.bat -keep -verbose ping.wsdl
    [Linux][AIX][HP-UX][Solaris]AIX® 또는 Linux와 같은 운영 체제는 다음 명령을 실행하여 내보낸 변수를 상속하도록 상위 쉘로 스크립트를 소싱합니다.
    . ./setupCmdLine.sh  (Notice the space between the periods.)
    /app_server_root>/bin directory. 다음 wsimport 명령을 실행하십시오.
    app_server_root/bin/wsimport.sh -keep -verbose ping.wsdl 
    [IBM i]
    app_server_root/bin/wsimport -keep -verbose ping.wsdl
wsimport 명령에서 템플리트 파일을 생성한 후에 다음 파일이 생성됩니다.
com\ibm\was\wssample\sei\ping\ObjectFactory.java
com\ibm\was\wssample\sei\ping\package-info.java
com\ibm\was\wssample\sei\ping\PingServicePortType.java
com\ibm\was\wssample\sei\ping\PingService.java
com\ibm\was\wssample\sei\ping\PingStringInput.java

ObjectFactory.java, PingService.java, PingServicePortType.java 파일은 Java 아카이브(JAR) 또는 웹 애플리케이션(WAR) 파일 내부의 클라이언트 구현을 통해 Java 아티팩트를 패키지하는 경우 사용할 생성된 Java 클래스 파일입니다.

다음에 수행할 작업

클라이언트 구현을 완료하십시오.

주제 유형을 표시하는 아이콘 태스크 주제



시간소인 아이콘 마지막 업데이트 날짜: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_jaxwsclientfromwsdl
파일 이름:twbs_jaxwsclientfromwsdl.html