Spring 3 整合Apache CXF WebService
2012-07-13 17:45
274 查看
在CXF2版本中,整合Spring3发布CXFWebService就更加简单了。因为Spring3提供了annotation注解,而CXF2发布WebService已经不像之前版本的配置那样(参考老版本发布WebService系列文章:/article/4791840.html),现在发布一个WebService可以直接从Spring的IoC容器中拿到一个对象,发布成WebService服务。当然发布WebService的配置有了些小小的变动,具体请往下看。
在老版本中发布一个WebService,配置applicationContext-server.xml文件中添加如下配置如下:
jaxws:server的发布方式
jaxws:endpoint的发布方式
而在2.x新版本中,发布Ioc容器中的对象为一个WebService的方法
CXF发布WebService官方参考:http://cxf.apache.org/docs/writing-a-service-with-spring.html
在老版本中发布一个WebService,配置applicationContext-server.xml文件中添加如下配置如下:
jaxws:server的发布方式
[code]<beanid="userServiceBean"class="com.hoo.service.ComplexUserService"/>
<beanid="inMessageInterceptor"class="com.hoo.interceptor.MessageInterceptor">
<constructor-argvalue="receive"/>
</bean>
<beanid="outLoggingInterceptor"class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
<!--注意下面的address,这里的address的名称就是访问的WebService的name-->
<jaxws:serverid="userService"serviceClass="com.hoo.service.IComplexUserService"address="/Users">
<jaxws:serviceBean>
<!--要暴露的bean的引用-->
<refbean="userServiceBean"/>
</jaxws:serviceBean>
<jaxws:inInterceptors>
<refbean="inMessageInterceptor"/>
</jaxws:inInterceptors>
<jaxws:outInterceptors>
<refbean="outLoggingInterceptor"/>
</jaxws:outInterceptors>
</jaxws:server>[/code]
jaxws:endpoint的发布方式
[code]<!--com.hoo.service.ComplexUserService是com.hoo.service.IComplexUserService接口的实现,这种方法应该不能从Ioc中引用对象-->
<jaxws:endpointid="userService2"implementor="com.hoo.service.ComplexUserService"address="/Users">
<jaxws:inInterceptors>
<refbean="inMessageInterceptor"/>
</jaxws:inInterceptors>
<jaxws:outInterceptors>
<refbean="outLoggingInterceptor"/>
</jaxws:outInterceptors>
</jaxws:endpoint>[/code]
而在2.x新版本中,发布Ioc容器中的对象为一个WebService的方法
[code]<beanid="userServiceBean"class="com.hoo.service.ComplexUserService"/>
<beanid="inMessageInterceptor"class="com.hoo.interceptor.MessageInterceptor">
<constructor-argvalue="receive"/>
</bean>
<beanid="outLoggingInterceptor"class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
<!--注意下面的address,这里的address的名称就是访问的WebService的name;#userServiceBean是直接引用Ioc容器中的Bean对象-->
<jaxws:serverid="userService"serviceBean="#userServiceBean"address="/Users">
<jaxws:inInterceptors>
<refbean="inMessageInterceptor"/>
</jaxws:inInterceptors>
<jaxws:outInterceptors>
<refbean="outLoggingInterceptor"/>
</jaxws:outInterceptors>
</jaxws:server>
<!--或者这种方式,在老版本中这个是不能引用Ioc容器中的对象,但在2.x中可以直接用#id或#name的方式发布服务-->
<jaxws:endpointid="userService2"implementor="#userServiceBean"address="/Users">
<jaxws:inInterceptors>
<refbean="inMessageInterceptor"/>
</jaxws:inInterceptors>
<jaxws:outInterceptors>
<refbean="outLoggingInterceptor"/>
</jaxws:outInterceptors>
</jaxws:endpoint>[/code]
CXF发布WebService官方参考:
相关文章推荐
- Spring 3 整合Apache CXF WebService
- CXF Webservice 6 - Spring 3 整合Apache CXF WebService
- Apache Cxf WebService整合Spring(2)
- Spring 3 整合Apache CXF WebService
- Apache Cxf WebService整合Spring(1)
- Spring 3 整合Apache CXF WebService
- Apache Cxf WebService整合Spring(2)
- Spring 3 整合Apache CXF WebService
- Spring 整合 Apache CXF发布webService
- Spring 3 整合Apache CXF WebService
- Spring 3 整合Apache CXF WebService[转]
- webservice CXF整合spring服务端测试并生成wsdl文件
- SpringBoot整合cxf发布webService
- Spring整合CXF提供WebService
- webservice与spring整合发布后台服务
- WebService介绍(WebService基础知识、XFire、CXF(基于XFire和Celtix项目整合而来,与Spring融合好)、AXIS1、AXIS2(有AXIS1转换而来,有Java)
- WebService学习之三:spring+cxf整合
- Apache CXF2+Spring2.5轻松实现WebService[附源码]
- Spring整合CXF webservice restful实例详解
- Spring 整合WebService示例