Web Service學習筆記(轉載)

在javax.xml.namespace.QName這個類中,有構造器
QName(String namespaceURI, String localPart)
在WSDL-FIRST的設計模式下(即先設計WSD文件),
第一個參數namespaceURI,等同於wsdl文件中wsdl:definitions 中的targetNamespace;
第二個參數localPart,等同於wsdl文件中wsdl:service中的name,即所要發佈的webservice的名稱。

下面語句:
static final QName SERVICE_NAME = new QName("http://www.example.org/TestService/",
"SayHelloService");
其中,
"http://www.example.org/TestService/":爲命名空間,是唯一的;
"SayHelloService":是wsdl中已經定義的webservice的名稱。

Server端有如下語句:
String address = "http://localhost:9090/TestService/SayHello";
Endpoint.publish(address, implementor);

Endpoint是JAX-WS v2.1 中一個抽象類,javax.xml.ws.Endpoint。EndPoint使用類中的靜態方法被創建,同時將web service的實現者和發佈地址綁定。

如下語句:
    <wsdl:service name="SayHelloService">
<wsdl:port name="SayHelloPort" binding="tns:SayHello">
<soap:address location="http://localhost:9090/Testervice/SayHello"/>
</wsdl:port>
</wsdl:service>

這裏wsdl:port 將service的“調用函數”和之前定義的SayHello綁定。soap:address location爲此webservice需要發佈的地址,即server端要發佈的地址。

客戶端通過wsdl請求web service的整個過程可以理解爲,首先在wsdl文件中的命名空間中,找到webservice服務,即找到了服務器端發佈此服務的地址。

from:[url]http://nuaaiceberg.spaces.live.com/Blog/cns!41C1B9B2BA8FF4E3!365.entry[/url]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章