JAX-WS 애플리케이션에 대한 web.xml 파일의 URL 패턴 사용자 정의

web.xml 파일은 모듈에서 웹 컴포넌트의 구조 및 외부 종속성에 관한 정보를 포함하며 런타임에서 컴포넌트 사용 방법을 설명합니다. JAX-WS(Java™ API for XML-Based Web Services) 애플리케이션에 대해 web.xml 파일의 URL 패턴을 사용자 정의할 수 있습니다.

이 태스크 정보

JavaBeans 기반 JAX-WS 애플리케이션을 웹 서비스로 패키지하면, 웹 서비스가 EAR(Enterprise Archive) 파일의 WAR 모듈 또는 WAR(Web Application Archive) 파일 안에 포함됩니다. JAX-WS 사용 WAR 파일은 다음 항목을 포함합니다.
  • 웹 애플리케이션을 구성하는 웹 컴포넌트에 대한 구성 및 배치 정보를 설명하는 WEB-INF/web.xml 파일
  • 서비스 엔드포인트 구현 클래스를 비롯한 애플리케이션 모듈에 포함된 웹 서비스를 구현하는 어노테이션이 있는 클래스
  • JAXB 클래스
  • (선택적) 애플리케이션 모듈에 포함된 웹 서비스를 설명하는 WSDL(Web Services Description Language) 문서
  • (선택적) XML 스키마 파일
  • (선택적) 유틸리티 클래스
  • (선택적) 웹 서비스 클라이언트

기본 URL 패턴은 해당 웹 서비스 구현 클래스에 포함된 @WebService.serviceName 속성에서 정의됩니다. 해당 서비스 구현 클래스와 연관된 WSDL 파일이 하나의 포트 정의를 포함하면, 기본 URL 패턴을 사용하도록 선택하거나 web.xml 파일의 URL 패턴을 사용자 정의할 수 있습니다. 해당 서비스 구현 클래스와 연관된 WSDL 파일이 동일한 서비스 정의의 다중 포트 정의를 포함하면, 사용자 정의된 URL 패턴이 필요합니다. 서비스 구현 클래스가 다중 포트 정의를 포함하는 경우 기본 URL 패턴을 사용하면, 다중 서비스 구현 클래스가 오류 조건을 유발하는 동일한 URL 패턴으로 맵핑됩니다. 사용자는 web.xml 파일을 편집하고 각 서비스 정의에 대한 URL 패턴을 사용자 정의해야 합니다. 각 포트는 웹 서비스 구현 클래스에 맵핑되고 각자의 사용자 정의 URL 패턴에 맵핑됩니다. web.xml 파일의 URL 패턴을 사용자 정의하여 충돌하는 URL 패턴 정의를 정정할 수 있습니다.

JAX-WS 애플리케이션이 EAR(Enterprise Archive) 파일 내에서 EJB(Enterprise JavaBeans) JAR(Java Archive) 파일에 패키지되면 endptEnabler 명령을 사용하여 URL 패턴을 사용자 정의할 수 있습니다.

프로시저

  1. 사용자 정의 URL 패턴이 필요하거나 원하는지 여부를 확인하십시오. 사용자 정의 URL 패턴은 JAX-WS 웹 서비스의 WSDL 파일이 단일 서비스 내에 다중 포트 정의를 포함하고 있는 경우에만 필수입니다. 그렇지 않으면 선택적으로 사용자 정의 URL 패턴을 정의할 수 있습니다.
  2. 서비스 구현 클래스에 대한 URL 패턴을 사용자 정의하려면 web.xml 파일을 편집하고, 사용자 정의 URL 패턴을 원하는 JAX-WS 웹 서비스 구현 클래스마다 <servlet> 및 해당 <servlet-mapping> 항목을 제공하십시오. <servlet-mapping> 항목에서 <url-pattern> 값을 정의해야 합니다.

결과

사용자 정의된 URL 패턴을 사용하는, 웹 서비스 사용 가능 WAR(Web Application Archive) 파일이 있습니다.

서비스 구현 클래스 내 단일 WSDL 포트 정의

다음 예제에서는 서비스 구현 클래스와 연관된 WSDL 파일이 하나의 포트 정의를 포함하는 경우에 URL 패턴을 사용자 정의하는 방법 및 기본 URL 패턴에 대해 설명합니다.

다음은 샘플 웹 서비스 구현 클래스에서 발췌한 것입니다.

package com.ibm.test;
@WebService(serviceName="EchoService", portName="SOAP11EchoServicePort")
public class EchoServiceSOAP11{

다음은 EchoServiceSOAP11 웹 서비스 구현 클래스와 연관된 WSDL 파일에서 발췌한 것입니다.

<wsdl:service name="EchoService">
		<wsdl:port name="SOAP11EchoServicePort" tns:binding="..." >
		...
	</wsdl:port>
</wsdl:service>
JSR-109에서 규정된 바에 따라, 이 예제의 기본 URL 패턴은 @WebService.serviceName 속성을 사용하도록 구성되었고 해당 기본 URL 패턴은 /EchoService입니다.

이 예제의 URL 패턴을 선택적으로 사용자 정의하려면, web.xml 파일을 편집하고 url-pattern을 입력하십시오. 이 예제에서 사용자 정의된 URL 패턴은 이제 /EchoServiceSOAP11입니다.

다음은 서블릿 설정을 수행하는 샘플 web.xml 파일에서 발췌한 것입니다.

<servlet id="...">
		<servlet-name>com.ibm.test.EchoServiceSOAP11</servlet-name>
		<servlet-class>com.ibm.test.EchoServiceSOAP11</servlet-class>
			<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
		<servlet-name>com.ibm.test.EchoServiceSOAP11</servlet-name>
		<url-pattern>/EchoServiceSOAP11</url-pattern> ---->  URL 패턴을 정의하여 서비스 구현 클래스에 위치지정합니다.
</servlet-mapping>

다음 예제에서는 서비스 구현 클래스와 연관된 WSDL 파일이 다중 포트 정의를 포함하는 경우에 필요한 URL 패턴 사용자 정의를 설명합니다.

다음은 샘플 웹 서비스 구현 클래스에서 발췌한 것입니다.

package com.ibm.test;
@WebService(serviceName="EchoService", portName="SOAP11EchoServicePort")
public class EchoServiceSOAP11{
	...
}
package com.ibm.test;
@WebService(serviceName="EchoService", portName="SOAP12EchoServicePort")
public class EchoServiceSOAP12{
	...
}

다음은 EchoServiceSOAP11 웹 서비스 구현 클래스와 연관된 WSDL 파일에서 발췌한 것입니다. WSDL 파일의 각 포트는 웹 서비스 구현 클래스의 portName에 맵핑됩니다.

<wsdl:service name="EchoService">
		<wsdl:port name="SOAP11EchoServicePort" tns:binding="..." >
		...
	</wsdl:port>
		<wsdl:port name="SOAP12EchoServicePort" tns:binding="..." >
		...
	</wsdl:port>
</wsdl:service>

이 시나리오에서는 WSDL 파일에 다중 포트 정의가 있기 때문에 web.xml 파일을 편집하여 URL 패턴을 사용자 정의해야 합니다. 서비스마다 사용자 정의 URL 패턴을 지정하십시오.

다음은 서블릿 설정을 수행하는 샘플 web.xml 파일에서 발췌한 것입니다.

<servlet id="...">
		<servlet-name>com.ibm.test.EchoServiceSOAP11</servlet-name>
		<servlet-class>com.ibm.test.EchoServiceSOAP11</servlet-class>
			<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
		<servlet-name>com.ibm.test.EchoServiceSOAP11</servlet-name>
		<url-pattern>/EchoServiceSOAP11</url-pattern>
</servlet-mapping>

<servlet id="...">
		<servlet-name>com.ibm.test.EchoServiceSOAP12</servlet-name>
		<servlet-class>com.ibm.test.EchoServiceSOAP12</servlet-class>
			<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
		<servlet-name>com.ibm.test.EchoServiceSOAP12</servlet-name>
		<url-pattern>/EchoServiceSOAP12</url-pattern>
</servlet-mapping>

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



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