首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

Web Service学习札记(转载)

2012-11-21 
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

热点排行