WSDL

WSDL(Web Services Description Language)는 XML(eXtensible Markup Language) 기반의 설명 언어입니다. 이 언어는 W3C(World Wide Web Consortium)에 웹 서비스를 설명하기 위한 업계 표준으로 제출되었습니다. WSDL의 장점은 두 개의 주요 아키텍처 프린시펄에 기반합니다. 비즈니스 작업 세트를 설명하는 기능과 설명을 두 개의 기본 단위로 구분하는 기능입니다.이런 단위는 작업 설명 및 작업과 연관된 정보가 패키지되는 방법에 대한 세부사항입니다.

WSDL 문서는 서비스를 네트워크 엔드포인트의 콜렉션이나 포트로 정의합니다. WSDL에서 엔드포인트 및 메시지의 요약 정의는 실제 Network Deployment 또는 데이터 형식 바인딩과는 별개입니다. 이 개별사항은 요약 정의 즉, 교환할 데이터의 요약 설명인 메시지와 작업의 요약 콜렉션인 포트 유형을 다시 사용할 수 있습니다. 특정 포트 유형에 대한 실제 프로토콜 및 데이터 형식 스펙이 다시 사용 가능한 바인딩을 구성합니다. 네트워크 주소를 다시 사용 가능한 바인딩과 연관시켜 정의되는 포트와 포트의 콜렉션이 서비스를 정의합니다. 그러므로 WSDL 문서는 여러 개의 요소로 구성됩니다.

다음은 WSDL 파일에 있는 정보의 구조입니다. WSDL 파일 분석

WSDL 파일에는 다음 부분이 포함됩니다.
  • 웹 서비스 인터페이스 정의

    이 파트에는 요소와 네임스페이스가 포함됩니다.

  • 웹 서비스 구현

    이 파트는 서비스 및 포트의 정의를 포함합니다.

WSDL 파일은 다음 요소로 웹 서비스를 설명합니다.

portType

운영 설명 및 연관된 메시지. portType 요소는 요약 조작을 정의합니다.

<portType name="EightBall">
  	<operation name="getAnswer">
    		<input message="ebs:IngetAnswerRequest"/>
    		<output message="ebs:OutgetAnswerResponse"/>
  </operation> 
</portType>

메시지

입력 및 출력 매개변수와 리턴값의 설명입니다.

<message name="IngetAnswerRequest">
  	<part name="meth1_inType" type="ebs:questionType"/>
</message>
<message name="OutgetAnswerResponse">
  	<part name="meth1_outType" type="ebs:answerType"/>
</message>

유형

메시지에 사용되는 XML 유형 설명에 대한 스키마입니다.

<types>
  <xsd:schema targetNamespace="...">
    		<xsd:complexType name="questionType">
      			<xsd:element name="question" type="string"/>
    </xsd:complexType>
    		<xsd:complexType name="answerType">
    ...
</types>

바인딩

바인딩은 특정 portType 요소로 정의되는 메시지에 대한 데이터 형식뿐만 아니라 portType에 액세스하는 데 사용되는 프로토콜을 설명합니다.

<binding name="EightBallBinding" type="ebs:EightBall">
  	<soap:binding style="rpc" transport="schemas.xmlsoap.org/soap/http">
  	<operation name="ebs:getAnswer">
  	<soap:operation soapAction="urn:EightBall"/>
    <input>
      			<soap:body namespace="urn:EightBall" ... />
      ...

서비스

서비스 및 포트는 웹 서비스의 위치를 정의합니다.

서비스는 웹 서비스 이름 및 포트 목록을 포함합니다.

포트

포트는 웹 서비스의 위치와, 서비스 액세스에 사용되는 바인딩을 포함합니다.
<service name="EightBall">
  	<port binding="ebs:EightBallBinding" name="EightBallPort">
    		<soap:address location="localhost:8080/axis/EightBall"/>
  </port>    
</service> 

JAX-WS(Java™ API for XML Web Services) 또는 JAX-RPC(Java API for XML-based RPC) 웹 서비스를 작성할 경우, JavaBeans 또는 엔터프라이즈 Bean에서 시작 시 상향식 개발 접근법을 사용하거나 기존의 WSDL(Web Services Description Language) 파일을 사용하여 시작 시 하향식 개발 접근법을 사용할 수 있습니다.

이 제품의 JAX-WS 웹 서비스를 작성할 때 WSDL 또는 구현 Bean 클래스로 시작할 수 있습니다. 구현 Bean 클래스로 시작하면 wsgen 명령행 도구를 사용하여, 요청된 경우 WSDL을 포함한 모든 웹 서비스 서버 아티팩트를 생성하십시오. WSDL로 시작하면 wsimport 명령행 도구를 사용하여 서버 또는 클라이언트측의 모든 웹 서비스 아티팩트를 생성하십시오.

이 제품의 JAX-RPC 웹 서비스를 작성할 때 먼저 서비스 엔드포인트 인터페이스를 포함하는 구현 Bean이 있어야 합니다. 그런 다음 Java2WSDL 명령행 도구를 사용하여 웹 서비스를 정의하는 WSDL 파일을 작성합니다. 구현 Bean 클래스를 생성하기 위해 WSDL로 시작할 경우, WSDL 파일에 대해 WSDL2Java 명령을 실행하여 Java API 및 배치 디스크립터 템플리트를 작성하십시오.

멀티파트 WSDL 및 WSDL 공개

이 제품은 멀티파트 WSDL(Web Services Description Language) 파일을 사용한 웹 서비스 배치를 지원합니다. 멀티파트 WSDL 파일에서, 구현 WSDL 파일에 wsdl:service가 들어 있습니다. 이 구현 WSDL 파일은 기타 WSDL 구성을 포함하는 인터페이스 WSDL 파일을 가져옵니다. 이는 동일한 WSDL 인터페이스 정의를 사용하는 다양한 웹 서비스를 지원합니다.

<wsdl:import> 요소는 다른 WSDL 파일에 대한 참조를 표시합니다. <wsdl:import> 요소 위치 속성이 URL을 포함하지 않는 경우(파일 이름만을 포함하고 http://, https:// 또는 file://로 시작하지 않는 경우), 가져온 파일은 동일한 디렉토리에 위치해야 하며 상대 경로 컴포넌트를 포함하지 않아야 합니다. 예를 들어, META-INF/wsdl/A_Impl.wsdl이 사용자 모듈에 있고 <wsdl:import="A.wsdl" namespace="..."/> import 문을 포함하는 경우, A.wsdl 파일은 모듈 META-INF/wsdl 디렉토리에도 위치해야 합니다.

WSDL 파일 내에 상대 가져오기가 있는 경우에도 EJB(Enterprise JavaBeans)를 사용 중이면 META-INF/wsdl 디렉토리에, JavaBeans 컴포넌트를 사용 중이면 WEB-INF/wsdl 디렉토리에 모든 WSDL 파일이 배치되는 것이 바람직합니다. 그렇지 않으면, <location="../interfaces/A_Interface.wsdl"namespace="..."/>. 이 예와 같은 경로를 사용하면 파일이 해당 경로에 있는지 여부와 관계 없이 상대 경로의 존재로 인해 실패합니다. 위치가 웹 주소이면 배치 및 서버 시작 둘 다에서 읽을 수 있어야 합니다.

URL 주소 또는 파일(WSDL 또는 XSD(XML Schema Definition) 파일 포함)을 통해 META-INF/wsdl 또는 WEB-INF/wsdl 디렉토리에 있는 파일을 공개할 수 있습니다. 예를 들어, webservices.xml 배치 디스크립터의 <wsdl-file> 요소에서 참조되는 파일이 META-INF/wsdl 또는 WEB-INF/wsdl 디렉토리에 위치하는 경우 공개할 수 있습니다. <wsdl-file>로 가져온 파일이 wsdl/ 디렉토리 또는 해당 서브디렉토리에 있으면 해당 파일을 공개할 수 있습니다.

<wsdl-file> 요소에 의해 참조되는 WSDL 파일이 wsdl 또는 해당 서브디렉토리가 아닌 다른 디렉토리에 있는 경우, 애플리케이션이 설치될 때 수정할 필요없이 동일한 디렉토리에 있는 파일과 그의 가져온 파일(WSDL 또는 XSD 파일)이 wsdl 디렉토리에 복사됩니다. 이런 유형의 파일도 공개할 수 있습니다.

<wsdl-file>이 다른 디렉토리(-INF/wsdl 또는 서브디렉토리가 아닌 디렉토리)에 있는 파일을 가져오는 경우, 해당 파일은 wsdl 디렉토리에 복사되지 않고 공개할 수 없습니다.

JAX-WS 웹 서비스의 경우 WSDL의 위치를 지정하는 데 어노테이션을 사용할 수 있습니다. WSDLLocation 속성이 포함된 @WebService 어노테이션을 사용하십시오. WSDLLocation 속성은 선택적입니다. 이 속성이 지정되지 않은 경우 WSDL이 웹 서비스 클래스에 있는 정보에서 생성되고 공개됩니다. webservices.xml 배치 디스크립터에서 WSDL 파일의 위치를 선택적으로 지정할 수 있습니다. 그러나 webservices.xml 배치 디스크립터에 정의한 정보는 어노테이션에서 지정한 정보로 대체됩니다.


주제 유형을 표시하는 아이콘 개념 주제



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