WebService服务器端与客户端几种发布方式

来源:互联网 发布:python 加减 编辑:程序博客网 时间:2024/05/17 03:58

通过spring 配置实现 webservice 的配置有两种,一种是jaxws:endpoint ,另外一种是jaxws:server 。

web service发布方式(下面三条没有加上spring发布的这两种)

第一种,使用jax-ws方式,非常简单

String url="http://localhost:8080/queryUser;

Endpoint.publish(url, new QueryUserImpl);


第二种,CXF方式


String url="http://localhost:8080/queryUser";

JaxWsServerFactoryBean factoryBean=new JaxWsServerFactoryBean();

factoryBean.setAddress(url);

factoryBean.setServiceClass(IQueryUser.class);

factoryBean.setServiceBean(new QueryUserImpl());

factoryBean.create()

第三种,CXF Simple FrontEnd方式

该方式无需在类中指定相关协议,也就是说不需要在类中指定相关webservice注解,一个普通类就行


ServerFactoryBean svrFactory = new ServerFactoryBean();

//设置服务接口类

svrFactory.setServiceClass(IQueryUser.class);

svrFactory.setAddress("http://localhost:8080/queryUser");

//设置服务实现接口类

svrFactory.setServiceBean(QueryUserImpl);

svrFactory.create();


客户端常见的调用方法:

方法一:使用CXF中JaxWsProxyFactoryBean客户端代理工厂调用web服务(仅供了解,不提倡用这种)

JaxWsProxyFactoryBean soapFactoryBean = newJaxWsProxyFactoryBean();
soapFactoryBean.setAddress("http://localhost:8080/queryUser");
soapFactoryBean.setServiceClass(IQueryUser.class);
Object o = soapFactoryBean.create();
IQueryUser service = (IQueryUser)o;

方法二:使用CXF的JaxWsDynamicClientFactory动态代理工厂(万用客户端方法)

JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
Client client = dcf.createClient("people.wsdl", classLoader);
Object person =Thread.currentThread().getContextClassLoader().loadClass("com.acme.Person").newInstance();
Method m = person.getClass().getMethod("setName", String.class);
m.invoke(person, "Joe Schmoe");
client.invoke("addPerson", person);


0 0
原创粉丝点击