一.服务端 cxf+spring
1.现在web.xml文件中增加如下配置
设置spring容器加在配置文件的路径,待会webservice接口的配置写在 base里
2.在dataAccessContext-base.xml中增加如下代码
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">
3.编写接口
接口文件的位置如下
接口实现:该接口下有两个方法:findElecData,findWaterData
要注意这个targetNameSpace,如果写错了,会导致客户端访问时出错,详细可查阅资料:http://pangsir.iteye.com/blog/1492508
注意的是和Spring集成,这里一定要完成接口实现,如果没有接口的话会有错误的。
在dataAccessContext-base.xml中增加如下代码
<jaxws:endpoint id="AllDataWebService" address="/AllDataWebService" >
<jaxws:implementor>
<bean class="com.cgdz.ecms.webservice.AllDataWebService">
<property name="gatherDataWService" ref="GatherDataWService"></property>
</bean>
</jaxws:implementor>
</jaxws:endpoint>
4.调试
下面启动tomcat服务器后,
在WebBrowser中请求:http://localhost:8080/ecms/WebService/AllDataWebService?wsdl
如果你能看到wsdl的xml文件的内容,就说明你成功了,注意的是上面地址的AllDataWebService就是上面xml配置中的address的名称,是一一对应的。
二、客户端
1.下载cxf的jar包,将lib文件夹下的jar全部导入
客户端代码如下,使用动态调用
接口方法的参数,invoke的第二个参数,是个可变参数,我们可以用数字将参数传入
当然,客户端也是可以与spring整合的,这里没有做,可以将访问地址放到配置文件中,自己探索吧