CXF客户端和服务端的使用和部署(例子在MFEclipse):
1.配置服务端的步骤:
---1.配置web.xml,首先配置好服务器拦截的请求类型,将该类请求给CXFServlet处理.
|
<servlet> <servlet-name>CXFServlet</servlet-name> <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <!-- 首先配置好服务器拦截的请求类型,将该类请求给CXFServlet处理 --> <servlet-mapping> <servlet-name>CXFServlet</servlet-name> <url-pattern>/webservice/*</url-pattern> </servlet-mapping> |
--2.在spring容器中配置配置第二层地址,和第二层地址访问的接口,接口实现类,对外开放接口实现类ServiceName参数所指定的类。
|
<!-- 1、本系统对外开放的webservice接口访问的地址 ,访问这个地址,就可以调用2进行处理--> <jaxws:endpoint id="checkInWebService" implementor="#webServiceImpl" address="/checkInWebService"></jaxws:endpoint>
<!-- 2、本系统对外开放的webservice接口 实现类 ,该实现类会根据外部传入的serviceName即3,进行调用--> <bean id="webServiceImpl" class="com.mfsspcheckin.common.webservice.service.IWebServiceServiceImpl"></bean>
<!-- 3、外部系统访问的方法对应接口实现类 --> <bean id="checkInWebServiceImpl" class="com.mfsspcheckin.common.webservice.checkin.CheckInWebServiceImpl" depends-on="applicationContextUtil"></bean> |
其中必须依赖bean的工具类
<bean id="applicationContextUtil" class="com.mfsspcheckin.common.util.ServiceManagerFactory"/> |
此工具类用于引入spring容器中的bean,而无需再本类上加spring的注解。
------3.分别实现1、2、3中这些实现类。
------4.访问:localhost:xxxx/xxx/webservice/checkInWebService?wsdl
即可测试 /webservice /checkInWebService分别是web.xml和spring配置文件中的拦截地址。
这样xcf的服务端就算完成了
2.配置客户端的步骤:
-----1.首先配置cxf的环境变量
------2.执行DOS指令生成客户端:
wsdl2java -frontend jaxws21 -p com.wang.client -d C:\XMCARES_X\WorkSpace\myTool\src -encoding utf-8 -client http://localhost:19090/mfsspcheckin/webservice/checkInWebService?wsdl
----------3.生成客户端如下:
可以通过Server_ServerImplPort_Client.java进行测试调用服务端。
3.如何将客户端中的调用方法抽出:
1.注入自动生成的IWebServiceService
4.即作为客户端又是服务端该如何抽离客户端方法:
----1.首先在spring配置文件中写入客户端生成的接口,方便调用;
|
<jaxws:client id="webservice" serviceClass="com.mfsspcheckin.webservice.IWebServiceService" address="http://11.8.17.245:8301/mfssp/soap/mfsspWebService?wsdl"> </jaxws:client> |
---2.注入调用即可