overview_How do I develop a client

来源:互联网 发布:淘宝店铺号 编辑:程序博客网 时间:2024/06/07 01:03

构件客户端的多种方式:

*WSDL2Java生成客户端

*JAX_WS代理

*JAX_WS调度API

*简单前端客户代理

*动态客户

Building Clients

WSDL2Java generated Client

根据WSDL文件生成客户端类,调用例子:

HelloService service = new HelloService();Hello client = service.getHelloHttpPort(); String result = client.sayHi("Joe");

JAX-WS Proxy

使用Service.create来创建服务实例,例子:

import java.net.URL;import javax.xml.ws.Service;... URL wsdlURL = new URL("http://localhost/hello?wsdl");QName SERVICE_NAME = new QName("http://apache.org/hello_world_soap_http", "SOAPService");Service service = Service.create(wsdlURL, SERVICE_NAME);Greeter client = service.getPort(Greeter.class);String result = client.greetMe("test");
JAX-WS Dispatch APIs
JAX-WS提供了“dispatch”机制使你容易动态调用服务。例子:

import java.net.URL;import javax.xml.transform.Source;import javax.xml.ws.Dispatch;import javax.xml.ws.Service;... URL wsdlURL = new URL("http://localhost/hello?wsdl");Service service = Service.create(wsdlURL, new QName("HelloService"));Dispatch<Source> disp = service.createDispatch(new QName("HelloPort"), Source.class, Service.Mode.PAYLOAD); Source request = new StreamSource("<hello/>")Source response = disp.invoke(request);
Simple Frontend Client Proxy
如果使用简单的前端服务,就可以使用ClientProxyFactoryBean API来创建一个Java代理客户端。

Dynamic Client

例子:

Client client = ....;Object[] result = client.invoke("sayHi", "Dan");
*使用ClientFactoryBean或者JaxWsClientFactoryBean类

*使用DynamicClientFactory或其子类

0 0
原创粉丝点击