1. 采用webservice原因
公司的几个项目都用到了同一个服务,所以把这个服务做成了webservice
2. 实现webservice技术
采用的cxf,之所以选择cxf不选择axis,是因为cxf对spring支持
3. cxf梳理
3.1 之前参考原来的代码也会使用webservice服务,但不知道所以然,现在有点时间,了解一下cxf,现在归纳一下自己知道的,以防以后忘记。
3.2 简单的例子可以参考http://cxf.apache.org/docs/a-simple-jax-ws-service.html
3.3 1)服务端
创建webservice 服务端,创建一个接口和实现类,在接口和实现类中增加要发布的方法,然后通过xml文件发布出去,形式一如下:
<bean id="hello" class="demo.spring.HelloWorldImpl"/>
<jaxws:endpoint id="helloWorld" implementor="#hello" address="/HelloWorld" />
形式一是spring托管方式
形式二如下:
<jaxws:endpoint id="helloWorld" implementor="demo.spring.HelloWorldImpl"
address="/HelloWorld" />
访问http://IP:端口/项目名,如果网页能正常打开,说明服务发布成功
2)客户端
在客户端需要建立和服务端一样的接口,目的是客户端可以识别服务端提供的接口和方法
客户端在xml文件中配置如下
<jaxws:client id="helloClient"
serviceClass="demo.spring.HelloWorld"
address="http://localhost:8080/项目名/HelloWorld" />
或
<bean id="helloClient" class="demo.spring.HelloWorld" factory-bean="clientFactory"
factory-method="create" />
<bean id="clientFactory" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">
<property name="serviceClass" value="demo.spring.HelloWorld" />
<property name="address" value="http://localhost:8080/项目名/HelloWorld" />
</bean>
然后项目加载这个xml文件,获得helloClient Bean,然后调用相应的webservice方法