Web Service学习笔记(转载)在javax.xml.namespace.QName这个类中,有构造器QName(String namespaceURI, Str
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:http://nuaaiceberg.spaces.live.com/Blog/cns!41C1B9B2BA8FF4E3!365.entry