Java는 WebService를 호출합니다. 처음 연락을 취하면 특히 통합 표준 구현이없는 악몽이라고 생각할 것입니다. .NET의 몇 단계에서 완료 될 수있는 웹 서비스 구현과 비교하여 Java의 구현을 보는 것은 정말 슬픈 일입니다. 그러나 우리가 슬퍼하더라도 여전히 완료해야합니다. Java는 Xfire, Jersey, CXF와 같은 많은 좋은 구현을 보유하고 있습니다. 여기서 우리는 XFIRE의 구현을 함께 살펴볼 것입니다.
1) 우선, 물론 가방에서 내려야 하며이 평범한 사람은 그것을 알고 있습니다. http://xfire.codehaus.org/download 여기로 갈 수 있습니다. 모두 또는 배포 할 수 있습니다. 그러나 자신감을 잃기 위해 이상한 이상한 문제를주는 것이 낫습니다.
가방을 벗으면 어떻게해야합니까? 프로젝트에 넣으십시오. 말도 안되는 것처럼 보이지만 많은 사람들은 무엇을 해야할지 모릅니다.
새로운 프로젝트를 구축하기 위해서는 물론 웹 프로젝트 인 Xfirewebservice와 비교합니다.
나는 모든 패키지를 여기에 넣었습니다. 결국, 우리가 예를 쓸 때 까다로울 필요는 없습니다. 우연히 클릭하십시오. 예외 정보를보고 싶다면 천천히 추가 할 수 있습니다. 앞으로 오류를 제거하는 것은 쉽지만 여기서는 그렇게하지 않을 것입니다. 결국, 어떤 종류의 예외가 없다는 것에 대해 추악한 것은 없으며, 직접 제거 할 수 있습니다.
2) 먼저 Xfire와 다른 웹 서비스 프레임 워크의 차이점을 이해해 봅시다. 가장 큰 차이점은 인터페이스가 필요하고 해당 웹 서비스를 호출하기 위해 XFIRE를 사용해야한다면 인터페이스의 정의를 알아야합니다. 나는 여기에 약간의 제한이 있다고 생각합니다. 그러나이 외에도 로컬 방법을 호출하는 것처럼 WebService를 호출하는 것이 매우 편리합니다. 예제를 직접 살펴 보겠습니다.
우선, 가장 중요한 인터페이스 :
public interface ireaderservice {public reader getReader (문자열 이름, 문자열 암호); 공개 목록 <Leader> getReaders (); } 인터페이스가 있습니다. 물론 구현 클래스가 있어야합니다. 그렇지 않으면 인터페이스에 의미가 없습니다. public class readerservice 구현 ireaderservice {public reader getReader (문자열 이름, 문자열 비밀번호) {return new Reader (이름, 암호); } public list <Leater> getReaders () {list <Leasher> readerList = new ArrayList <Reader> (); readerList.Add (새 독자 ( "Shun1", "123")); readerList.Add (새 독자 ( "Shun2", "123")); 리턴 리더리스트; }} 또한 Javabean 및 독자 수업을 살펴보십시오.
공개 클래스 리더 {private static final long serialversionuid = 1L; 개인 문자열 이름; 개인 문자열 비밀번호; public reader () {} public reader (문자열 이름, 문자열 암호) {this.name = name; this.password = 비밀번호; } // get/set method ovist public string toString () {return "name :"+name+", password :"+password; }}여기서 독자 클래스는 직렬화 가능한 인터페이스를 구현합니다. 우선, 우리는 웹 서비스의 원리를 이해해야합니다. Java의 경우 인터넷에서 객체를 업로드 해야하는 경우 많은 사람들이 일련의 직렬화를 생각할 것입니다. 그건 그렇고, 이것은 독자를 매개 변수로 전달해야하기 때문에 직렬화입니다. 이전 버전에서 강제로 구현해야하며, 그렇지 않으면 오류 가보고됩니다. 그러나 최신 버전 (실제로 최신 버전은 2007 년부터 Xfire가 개발을 중단하고 Apache에 의해 CXF 프로젝트에 합병 되었기 때문에 2007 년의 버전이기도합니다. 나중에 이에 대해 이야기 할 것입니다) 더 이상 필요하지 않습니다. 구현 방법에 관해서는, 우리는 CXF로 병합 되었기 때문에 당분간 여기에서 깊이 조사하지 않을 것입니다. 우리가 깊이 배우고 싶다면 CXF를 배우는 것이 좋습니다.
3) 위의 인터페이스와 Javabean Writing을 완료 한 후 많은 사람들이 물어볼 것입니다. 많은 웹 서비스가 WSDL 파일을 가질 것이라는 것을 알 수 있습니다. 어떻게 얻었습니까? 이것에 대해 이야기하기 전에 WSDL이 무엇인지 논의 해 봅시다. 아마도 많은 회사들이 HTTP 주소 인 인터페이스를 제공하고 XML 형식을 반환하는 인터페이스를 제공합니다. 이것은 하나의 이점과 하나의 단점이 있습니다. 장점은 우리의 개발이 덜 어렵다는 것입니다. 단점은 사용자에게 많은 설명 파일을 제공해야한다는 것입니다. 반환 된 각각의 XML 태그는 무엇을 의미합니까? 이것은 아무것도 아니지만 단지 성가시다. Webservice의 경우, 단점은 우리가 조금 더 많은 것을 개발했으며, 장점은 WSDL이라는 통합 된 설명이 있기 때문에 많은 설명 파일을 작성할 필요가 없다는 것입니다. 이것은 WebService의 설명 문서로, 통일되고 어떤 언어에도 불구하고, 아무도 이해할 수없는 문제가 없습니다.
XFire를 배포 할 때 WSDL 파일을 생성하는 데 도움이 될 수 있습니다.
문제는 배치하는 방법입니다. 실제로 간단합니다. SRC 디렉토리에 새 폴더 메타 인프를 생성 한 다음 폴더 XFIRE를 작성하고 파일 Services.xml을 만듭니다. 후속 구조는 다음과 같습니다.
어떤 사람들은 왜 우리가 그것을 SRC 디렉토리에 빌드 해야하는지 물어볼 수 있습니다. 실제로, 여기에는 규정 된 빌드가 아니지만, 이러한 파일을 직접 배포하는 데 도움이되는 개발 도구를 요청해야하기 때문에 Eclipse를 사용하면 Tomcat 또는 기타 컨테이너에 배포하는 데 도움이 될 수 있습니다. 이 파일이있는 폴더 레벨은 고정되어 있으며 수정할 수 없습니다.
Services.xml을 직접 살펴 보겠습니다.
<? xml version = "1.0"alcoding = "utf-8"?> <beans xmlns = "http://xfire.codehaus.org/config/1.0"> <servic> <!-WebServiceq의 이름은 전화를 걸 때-> <name> inderervice </name> <! <amestpace> http : // test/helloService </namespace> <!-인터페이스 클래스-> <ServiceClass> com.xfire.servlet.ireaderservice </serviceclass> <!-<edubleationclass> com.xfire.servlet.readerservice </service> </beanss>
일반적으로 의견을 보는 것은 괜찮습니다.
4) 많은 사람들이 이것이 충분하다고 생각합니다. 아니요, 아직 작동하지 않았습니다. 이것을 지정하면 다른 사람들이 어떻게 방문 할 수 있습니까? 해당 요청을 XFIRE에 전달하고 처리하도록하는 방법. Web.xml을 다시 수정해야합니다.
수정 후 다음은 다음과 같습니다.
<? xml version = "1.0"encoding = "utf-8"?> <web-app xmlns : xsi = "http://www.w3.org/2001/xmlschema-instance"xmlns = "http://java.sun.com/xml/ns/javaee" xmlns : web = "http://java.sun.com/xml/ns/javaee"xmlns : web = "http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi : schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"id = "webapp_id"version = "3.0"> <servlet> <servlet-name> xfirerervlet> <Servlet-Class> org.codehaus.xfire.transport.http.xfireconfigurableservlet </servlet-class> </servlet> <servlet-mapping> <servlet-name> xfireservlet </servlet-name> <url-pattern>/*</url-pattern> </web-app-mapping> </web-app>
실제로, 그것은 단지 서블릿과 해당 매핑을 추가하는 것입니다. 다음으로 브라우저에 직접 입력합니다.
http : // localhost : 8080/xfirewebservice/services/readerservice? wsdl
우리는 볼 수 있습니다 :
여기에 표시되는 것은 WSDL이며, 여기에는 정의하는 메소드와 유형이 반환 된 유형을 표시합니다. 나중에 WSDL에 대한 설명이 있습니다.
5) 위의 네 단계를 완료 한 후 웹 서비스의 배포를 완료했습니다. 다른 사람들은 해당 웹 서비스를 호출하여 우리의 방법에 액세스 할 수 있습니다. 방금 게시 한 웹 사이트 서비스에 액세스하기 위해 XFire가 제공 한 클라이언트를 사용해 보겠습니다.
public class readerclient {public static void main (string [] args) {// 서비스를 작성하는 것이며, 해당 인터페이스 메소드 서비스 SrcModel = new ObjectServiceFactory (). create (ireaderservice.class)를 호출해야하기 때문에 인터페이스 클래스를 전달해야합니다. // Agent Factory, 여기에 해당 인터페이스 클래스를 생성하는 것이 xfireproxyFactory factory = new xfireproxyFactory (xfirefactory.newinstance (). getxfire ()); // webservice 주소, wsdl을 추가 할 필요가 없음 문자열 readerServiceUrl = "http : // localhost : 8080/xfirewebservice/services/readerService"; {// 공장을 사용하여 해당 인터페이스 클래스 IREADERSERVICE readerService = (ireaderservice) factory.create (srcmodel, readerserviceurl)를 반환합니다. Reader Reader = readerService.getReader ( "Shun", "123"); System.out.println (Reader); } catch (marlomedurlexception e) {e.printstacktrace (); }}} 이런 식으로, 우리는 출력이 다음과 같습니다.
WSDL 파일 구조 분석
WSDL (웹 서비스 설명 언어, 웹 서비스 설명 언어)는 웹 서비스 설명을 클라이언트가 문서 정보 또는 절차 호출을 포함하는 서비스 (원격 절차 호출과 유사)에 액세스 할 수있는 일련의 서비스 액세스 포인트로 정의하는 XML 응용 프로그램입니다. WSDL은 먼저 액세스 작업과 액세스 중에 사용 된 액세스 작업 및 요청/응답 메시지를 추상화 한 다음이를 특정 전송 프로토콜 및 메시지 형식에 바인딩하여 궁극적으로 배포 된 서비스 액세스 포인트를 정의합니다. 관련 특정 배포의 서비스 액세스 포인트는 조합을 통해 추상 웹 서비스가됩니다. 이 기사는 WSDL 문서의 구조를 자세히 설명하고 각 요소의 역할을 분석합니다.
1 : WSDL 정의
WSDL은 웹 서비스를 정확하게 설명하는 데 사용되는 문서이며 WSDL 문서는 WSDL XML 패턴을 따르는 XML 문서입니다. WSDL 문서는 웹 서비스를 서비스 액세스 포인트 또는 포트 모음으로 정의합니다. WSDL에서 서비스 액세스 포인트 및 메시지의 추상 정의가 특정 서비스 배포 또는 데이터 형식 바인딩과 분리되었으므로 추상 정의는 다시 사용할 수 있습니다. 메시지는 교환 된 데이터의 추상 설명을 나타냅니다. 포트 유형은 추상적 인 작업 모음을 나타냅니다. 특정 포트 유형에 대한 특정 프로토콜 및 데이터 형식 사양은 재사용 할 수있는 바인딩을 구성합니다. 웹 액세스 주소를 재사용 가능한 바인딩과 연결하면 포트를 정의 할 수 있으며 포트 모음은 서비스로 정의됩니다.
WSDL 문서에는 일반적으로 유형, 가져 오기, 메시지, 포트 타입, 작업, 바인딩 및 서비스 요소와 같은 7 가지 중요한 요소가 포함됩니다. 이러한 요소는 WSDL 문서의 루트 요소 인 정의 요소에 중첩됩니다. 이 기사의 다음 부분은 WSDL의 기본 구조를 자세히 소개합니다.
2 : WSDL의 기본 구조--뷰
첫 번째 부분의 끝에 설명 된 바와 같이, 기본 WSDL 문서에는 7 개의 중요한 요소가 포함되어 있습니다. 다음은 이러한 요소와 그 기능을 소개합니다.
WSDL 문서는 웹 서비스의 정의에서 다음 요소를 사용합니다.
・ 유형 - 특정 유형 시스템 (일반적으로 XML 스키마의 유형 시스템)을 사용하는 데이터 유형으로 정의 된 컨테이너.
・ 메시지 - 통신 메시지를위한 데이터 구조의 초록 유형 정의. 전체 메시지의 데이터 구조를 정의하기 위해 유형으로 정의 된 유형을 사용하십시오.
・ 운영 - 서비스에서 지원되는 운영에 대한 추상 설명. 일반적으로 단일 작업은 항목에 액세스하는 요청/응답 메시지 쌍을 설명합니다.
portType- 하나 이상의 서비스 액세스 포인트에서 지원할 수있는 특정 액세스 엔트리 포인트 유형에서 지원하는 초록 작업 모음.
・ 바인딩 - 특정 포트 유형에 대한 특정 프로토콜 및 데이터 형식 사양의 바인딩.
port- 프로토콜/데이터 형식 바인딩을 특정 웹 액세스 주소와 결합하는 단일 서비스 액세스 포인트로 정의됩니다.
・ 서비스- 관련 서비스 액세스 포인트 모음.
WSDL의 XML 스키마는 다음 URL이라고합니다 : http://schemas.xmlsoap.org/wsdl/
3 : WSDL의 기본 구조-결정된 설명
이 섹션에서는 예제를 통해 WSDL 문서의 각 요소의 역할을 자세히 설명합니다. 다음 예는 간단한 WSDL 문서의 내용입니다. 이 문서의 세대는 다른 기사를 참조하십시오 : XFIRE 개발 예-HellowOrld.
HTTP에서 SOAP 프로토콜을 실행하여 구현되는 SayHello라는 고유 한 작업을 지원하는 간단한 웹 서비스 WSDL 문서입니다. 요청은 문자열 이름을 수락하고 처리 후 간단한 문자열을 반환합니다. 문서는 다음과 같습니다.
<? xml version = "1.0"encoding = "utf-8"?> <wsdl : 정의 targetnamespace = "http : //com.liuxiang.xfiredemo/helloservice"xmlns : tns = "http : //com.liuxiang.xfiredemo/helloservice" xmlns : wsdlsoap = "http://schemas.xmlsoap.org/wsdl/soap/"xmlns : soap12 = "http://www.w3.org/2003/05/soap-envelope" xmlns : xsd = "http://www.w3.org/2001/xmlschema"xmlns : soapenc11 = "http://schemas.xmlsoap.org/soap/encoding/"xmlns : soapenc12 = "http://www.w.w.org/2003/05/ xmlns : soap11 = "http://schemas.xmlsoap.org/soap/envelope/"xmlns : wsdl = "http://schemas.xmlsoap.org/wsdl/"> <wsdl : types> <xsd : schema xmlns : xsd = "http://www.w.w3.org/2001/xmlschema"attributeformdefault = "regulied"elementformdefault = "required"targetnamespace = "http : //com.liuxiang.xfiredemo/helloservice"> <xsd : remall name = "> <xsd : <xsd : 시퀀스> <xsd : 요소 maxoccurs = "1"minoccurs = "1"name = "name"nillable = "true"type = "xsd : string"/> </xsd : sequence> </xsd : complextype> </xsd : element> <xsd : "emection name ="sayhelloresponse "> <XSD : 요소 maxoccurs = "1"minoccurs = "1"name = "out"nillable = "true"type = "xsd : string"/> </xsd : sequence> </xsd : complextype> </xsd : element> </xsd : schema> </wsdl : types> <wsdl : sayhellorponse "> name="parameters" element="tns:sayHelloResponse" /> </wsdl:message> <wsdl:message name="sayHelloRequest"> <wsdl:part name="parameters" element="tns:sayHello" /> </wsdl:message> <wsdl:portType name="HelloServicePortType"> <wsdl:operation 이름 = "sayhello"> <wsdl : 입력 이름 = "sayhellorequest"message = "tns : sayhellorequest" /> <wsdl : output name = "sayhelloresponse"message = "tns : sayhelloresponse" /> < /wsdl : 조작> < /wsdl : porttype> 이름 = "helloservicehttpbinding"type = "tns : helloServiceportType"> <wsdlsoap : binding style = "document"artnormation = "http://schemas.xmlsoap.org/soap/http"/> <wsdlsoap : operation name = "sooratication ="socopation = "socorap/http" "sayhello"> <wsdlsoap : 작동 soapaction = ""/> <wsdlsoap : body use = "literal"/> </wsdl : input> <wsdlsoap : body use = "literal"/> </wsdl : output> </wsdl : operation> </wsdl : wsdl : wsdl : service name = "wsdl :"<wsdl : 이름 = "HelloServicehttpport"binding = "tns : helloservicehttpbinding"> <wsdlsoap : 주소 위치 = "http : // localhost : 8080/xfire/services/helloService"/> </wsdl : port> </wsdl : service> </wsdl : defernments>
유형 요소는 XML 스키마 언어를 사용하여 WSDL 문서의 다른 곳에서 사용되는 복잡한 데이터 유형 및 요소를 선언합니다.
가져 오기 요소는 XML 스키마 문서의 가져 오기 요소와 유사하며 다른 WSDL 문서에서 WSDL 정의를 가져 오는 데 사용됩니다.
메시지 요소는 WSDL 문서의 유형 요소에 정의되거나 가져 오기 요소에서 참조 된 외부 WSDL 문서에 정의 된 XML 스키마의 내장 유형, 복잡한 유형 또는 요소를 사용하여 메시지의 페이로드를 설명합니다.
porttype 요소 및 작동 요소는 웹 서비스의 인터페이스를 설명하고 그 메소드를 정의합니다. porttype 요소 및 작동 요소는 Java 인터페이스에 정의 된 메소드 선언과 유사합니다. 작동 요소는 하나 이상의 메시지 유형을 사용하여 입력 및 출력의 페이로드를 정의합니다.
바인딩 요소는 porttype 요소와 작동 요소를 특수 프로토콜 및 인코딩 스타일에 할당합니다.
서비스 요소는 인터넷 주소를 특정 바인딩에 할당 할 책임이 있습니다.
1. 정의 요소
모든 WSDL 문서의 루트 요소는 정의 요소입니다. 이 요소는 이름을 통해 WSDL 문서를 제공하면서 전체 문서를 캡슐화합니다. 이 요소에는 네임 스페이스를 제공하는 것 외에는 다른 기능이 없으므로 자세히 설명되지 않습니다.
다음 코드는 정의 요소의 구조입니다.
<wsdl : 정의 targetnamespace = "http : //com.liuxiang.xfiredemo/helloservice"xmlns : tns = "http : //com.liuxiang.xfiredemo/helloservice" xmlns : wsdlsoap = "http://schemas.xmlsoap.org/wsdl/soap/"xmlns : soap12 = "http://www.w3.org/2003/05/soap-envelope" xmlns : xsd = "http://www.w3.org/2001/xmlschema"xmlns : soapenc11 = "http://schemas.xmlsoap.org/soap/encoding/"xmlns : soapenc12 = "http://www.w.w.org/2003/05/ xmlns : soap11 = "http://schemas.xmlsoap.org/soap/envelope/"xmlns : wsdl = "http://schemas.xmlsoap.org/wsdl/"> </wsdl : 정의>
2. 유형 요소
WSDL은 W3C XML 스키마 내장 유형을 기본 유형 시스템으로 채택합니다. 유형 요소는 XML 스키마 내장 유형에 설명되지 않은 다양한 데이터 유형을 정의하기 위해 컨테이너로 사용됩니다. 메시지 부분의 페이로드를 선언 할 때 메시지 정의는 유형 요소에 정의 된 데이터 유형 및 요소를 사용합니다. 이 wsdl 문서의 정의 형식 :
<wsd : types> <xsd : schema xmlns : xsd = "http://www.w3.org/2001/xmlschema"attributeformdefault = "regulified"elementformdefault = "walified"targetnamespace = "http : //com.liuxiang.xfiredemo/helloservice" 이름 = "sayhello"> <xsd : complextype> <xsd : sequence> <xsd : element maxoccurs = "1"minoccurs = "1"name = "name"nillable = "true"type = "xsd : string"/> </xsd : sequence> </xsd : complextype> <xsd : electm : "syhelloResponton"> <xsd : complextype> <xsd : 시퀀스> <xsd : 요소 maxoccurs = "1"minoccurs = "1"name = "out"nillable = "true"type : "xsd : string"/> </xsd : 시퀀스> </xsd : complextype> </xsd : element> </xsd : schema> </wsdl : type>
위는 데이터 정의 부분이며, 하나는 Sayhello이고 다른 하나는 Sayhellorsonge입니다.
SARDHELLO : 향후 작전의 들어오는 부분을 설명하는 데 사용되는 간단한 문자열 만 포함하는 복잡한 유형을 정의합니다.
SaysHellorSponse : 간단한 문자열 만 포함하는 복잡한 유형과 향후 작업을 설명하는 데 사용되는 반환 값을 정의합니다.
3. 수입 요소
가져 오기 요소를 사용하면 현재 WSDL 문서의 다른 WSDL 문서에 지정된 네임 스페이스에서 정의 요소를 사용할 수 있습니다. 이 예에서는 가져 오기 요소가 사용되지 않습니다. 이 기능은 일반적으로 사용자가 WSDL 문서를 모듈화하려는 경우 매우 효과적입니다.
가져 오기 형식은 다음과 같습니다.
<wsdl : import namespace = "http://xxx.xxx.xxx/xxx/xxx"location = "http://xxx.xxx.xxx/xxx/xxx.wsdl"/>
네임 스페이스 속성과 위치 속성이 있어야합니다.
네임 스페이스 속성 : 값은 가져 오는 WSDL 문서에서 선언 된 TargetNamespace와 일치해야합니다.
위치 속성 : 실제 WSDL 문서를 가리켜야하며 문서를 비울 수 없습니다.
4. 메시지 요소
메시지 요소는 메시지를 사용하여 웹 서비스의 페이로드를 설명합니다. 메시지 요소는 출력 또는 수락 메시지의 페이로드를 설명 할 수 있습니다. 또한 SOAP 파일 헤더의 내용과 오류 세부 사항 요소를 설명 할 수도 있습니다. 메시지 요소가 정의되는 방식은 RPC 스타일 또는 문서 스타일 메시징 사용에 따라 다릅니다. 이 기사의 메시지 요소의 정의 에서이 문서는 문서 스타일 메시징을 사용합니다.
<wsdl : 메시지 이름 = "SayHellorESponse"> <wsdl : part name = "parameters"element = "tns : sayhelloresponse" /> < /wsdl : message> <wsdl : "sayhellorequest"> <wsdl : part name = "매개 변수" "element ="tns : sayhello " /> wsdl : wsdl :
이 부분은 메시지 형식의 추상 정의입니다.
SARDHELLOREQUEST : 이름이 지정된 매개 변수로 구성된 SayHello 조작의 요청 메시지 형식 및 요소는 이전에 정의한 유형의 요소입니다.
SAYSHELLORSPONSE : SayHello 작동의 응답 메시지 형식은 매개 변수라는 메시지 조각으로 구성되며 요소는 이전에 정의한 유형의 요소입니다.
RPC 스타일의 메시징을 사용하는 경우 문서의 요소 요소 만 입력하면됩니다.
5. PORTTYPE 요소
porttype 요소는 웹 서비스의 추상 인터페이스를 정의합니다. 이 인터페이스는 Java 인터페이스와 약간 유사하며, 둘 다 추상 유형과 메소드를 정의하고 구현이 정의되지 않습니다. WSDL에서 PortType 요소는 바인딩 및 서비스 요소에 의해 구현되며, 인터넷 프로토콜, 인코딩 체계 및 웹 서비스 구현에서 사용하는 인터넷 주소를 설명하는 데 사용됩니다.
다중 작업은 PortType에서 정의 될 수 있으며 하나의 작업은 방법으로 간주 될 수 있습니다. 이 기사의 WSDL 문서의 정의 :
<wsdl : porttype name = "helloServiceportType"> <wsdl : 작동 이름 = "sayhello"> <wsdl : input name = "sayhellorequest"message = "tns : sayhellorequest" /> <wsdl : output name = "sayhellorespons </wsdl : porttype>
porttype 서비스의 통화 모드 유형을 정의합니다. 작동이 요청/응답 모드임을 나타 내기 위해 입력 및 출력이 모두 포함 된 조작 SERNHELLO 메소드가 포함되어 있습니다. 요청 메시지는 앞에서 정의 된 SayHelloreQuest이며 응답 메시지는 앞에서 정의 된 SayHelloresponse입니다. 입력은 웹 서비스에 전달되는 페이로드를 나타내고 출력 메시지는 클라이언트에게 제공되는 페이로드를 나타냅니다.
6. 바인딩
바인딩 요소는 추상 포트 타입을 특정 프로토콜 (SOAO 및 HTTP), 메시징 스타일 및 인코딩 스타일에 매핑합니다. 일반적으로 결합 요소는 프로토콜의 독점 요소와 함께 사용됩니다. 이 기사의 예 :
<wsdl : binding name = "helloservicehttpbinding"type = "tns : helloserviceporttype"> <wsdlsoap : binding style = "document"artnormation = "http://schemas.xmlsoap.org/soap/http"/> <wsdl : wsdl : wsdloap "> <wsdlsoap :" " /> <wsdl : 입력 이름 = "sayhellorequest"> <wsdlsoap : body use = "literal" /> < /wsdl : input> <wsdl : output name = "sayhelloresponse"> <wsdlsoap : body use = "literal" /> < /wsdl : output>