生活随笔
收集整理的這篇文章主要介紹了
Spring+CXF之集成
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本文介紹CXF+Spring使用注解的集成,用到的接口等java類與
XFire+Spring整合相同,不再給出,只給出配置信息。使用CXF版本為2.6.2,Spring為3.1.1,測試環境為Tomcat6.0。
CXF2.6.2下載
??????? 1.建立一個Web工程,引入相應的jar包,最精簡jar包下載:
commons-logging-1.1.1.jar
cxf-2.6.2.jar
geronimo-jaxws_2.2_spec-1.1.jar
jaxb-api-2.2.6.jar
neethi-3.0.2.jar
org.apache.cxf.spring.remoting.Jsr181HandlerMapping.jar
org.springframework.aop-3.1.1.RELEASE.jar
org.springframework.asm-3.1.1.RELEASE.jar
org.springframework.beans-3.1.1.RELEASE.jar
org.springframework.context-3.1.1.RELEASE.jar
org.springframework.core-3.1.1.RELEASE.jar
org.springframework.expression-3.1.1.RELEASE.jar
org.springframework.web.servlet-3.1.1.RELEASE.jar
org.springframework.web-3.1.1.RELEASE.jar
wsdl4j-1.6.2.jar
xmlschema-core-2.0.1.jar
??????? 2.修改web.xml,加入以下代碼:
[html] view plaincopyprint?
<listener>? ??? <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>? </listener>? ? <context-param>? ??? <param-name>contextConfigLocation</param-name>? ??? <param-value>classpath:applicationContext.xml</param-value>? </context-param>? ? ??? <servlet>? ??? <servlet-name>CXFService</servlet-name>? ??? <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>? ??? <load-on-startup>1</load-on-startup>? </servlet>? <servlet-mapping>? ??? <servlet-name>CXFService</servlet-name>? ??? <url-pattern>/service/*</url-pattern>? </servlet-mapping>?
<listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value></context-param><servlet><servlet-name>CXFService</servlet-name><servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>CXFService</servlet-name><url-pattern>/service/*</url-pattern></servlet-mapping>??????? 3.在classpath下加入Spring配置文件applicationContext.xml,加入以下代碼,
注意component-scan一定要在三個import之后,否則啟動服務會報錯:
[html] view plaincopyprint?
<import resource="classpath:META-INF/cxf/cxf.xml" />? <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />? <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />? ? <context:component-scan base-package="my" />? ? <bean id="webServicesAgent" class="org.apache.cxf.spring.remoting.Jsr181HandlerMapping">? ??? <property name="urlPrefix"><value>/</value></property>? </bean>?
<import resource="classpath:META-INF/cxf/cxf.xml" /><import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /><import resource="classpath:META-INF/cxf/cxf-servlet.xml" /><context:component-scan base-package="my" /><bean id="webServicesAgent" class="org.apache.cxf.spring.remoting.Jsr181HandlerMapping"><property name="urlPrefix"><value>/</value></property></bean>??????? 4.服務端配置完成,接口定義及其他類不再給出,下面是客戶端調用:
[java] view plaincopyprint?
@Test? public void testCXFBookService() {? ??? try {? ??????? JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();? ??????? factory.setServiceClass(IBookService.class);? ??????? factory.setAddress("http://127.0.0.1:8080/CXFTest/service/BookService");? ??????? IBookService bookService = (IBookService) factory.create();? ??????? System.out.println(">>>>>>>>Client: " + bookService.getBook());? ??? }? ??? catch (Exception e) {? ??????? e.printStackTrace();? ??? }? }?
總結
以上是生活随笔為你收集整理的Spring+CXF之集成的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。