更新时间:2022-08-21 18:27:43
spring 3.0 cxf2.7.2整合
1,拷贝spring的 jar
2,拷贝cxf的jar包
jetty不需要了
asm
common-logging
neethi
wsdl4j
xmlschema
cxf
http-*
3,修改web.xml 添加对spring的支持
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INFO/applicationContext.xml</param-value>
</context-param>
<listener-class>
ContentLoadListener
</listener-class>
4,在web.xml添加对cxf的支持
//配置cxf的核心控制器
<servlet>
<servlet-name>cxf
<servlet-class>CXFServlet
</servlet>
//所有来自/ws/*的请求交给cxf处理
<servlet-mapping>
<servlet-name>cxf
<url-pattern>/ws/*
</servlet-mapping>
5,在spring中倒入schema和xml配置
在cxf.jar/schema中可以看到 jaxws.xsd 找到命名空间
在cxf.jar/META-INF/spring.schemas 找到schema-location
http\://cxf.apache.org/schemas/jaxws.xsd=schemas/jaxws.xsd
在cxf.jar/META-INF/这里存在一些xml配置文件
在spring需要导入一些配置文件
<import resourse="classpath:/META-INF/xxx.xml"/>
cxf.xml
<import resource="classpath:META-INF/cxf/cxf.xml" />
<import resource="classpath:META-INF/cxf/cxf-extension-jaxrs-binding.xml" />
<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
web应用的类加载路径有两类:
1,WEB-INF/classes目录
2,WEB-INF/lib目录
6,在spring中使用jaxws:endpoint元素来暴露Web Service
implementor指定web service的服务提供者,支持两种形式:
1,直接给服务器提供类名
2,设置为spring容器中的一个bean
<jaxws:endpoint
implementor="xxx.xx.xx.Xxx"
address="/ws" >
</jaxws:endpoint>
第二种方式
<bean id="webServiceName" class="xxx.xx.xx.Xxx" >
<ref bean="customerService" />
</bean>
<jaxws:endpoint
implementor="#webServiceName" #代表使用spring容器中的类
address="/ws" >
<jaxws:inInterceptors>
<bean class="xx.xx.xx.Xxx"/>
<bean class="xx.xx.xx.Xxx"/>
</jaxws:inInterceptors>
</jaxws:endpoint>
cxf和Spring的另外一种整合:在action调用web service
1,复制cxf jar包
2,在spring中配置导入cxf提供的schema,xml配置文件(jaxws)
3,在spring中使用jaxws:client来配置webservice
<jaxws:client id="hw"
serviceClass=""
address="http://localhost:8080/ws_03_server_cxf_spring3.1/ws?wsdl">
<jaxws:outInterceptors>
<bean class="">
<contractor-arg value="admin" />
<contractor-arg value="admin" />
</bean>
</jaxws:outInterceptors>
</jaxws:client>
4,添加拦截器方法一样
服务器端
web.xml
spring配置applicationContext.xml
spring客户端
applicationContext.xml
测试