首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 企业软件 > 行业软件 >

CXF与Spring 2.5调整

2012-07-22 
CXF与Spring 2.5整合1.1资源下载CXF :http://cxf.apache.org (apache-cxf-2.2.10)?????? Spring:http://ww

CXF与Spring 2.5整合

1.1资源下载

CXF :http://cxf.apache.org (apache-cxf-2.2.10)

?????? Spring:http://www.springsource.com/download(spring2.5.5)

?

1.2系统环境

????????????? JDK版本? :1.6.0_18

????????????? Tomcat版本:6.0?

?

1.3项目构建

第一步:导入CXF相关的类库

?CXF与Spring 2.5调整

?

接着导入Spring 依赖的包

CXF与Spring 2.5调整

?

第二步:配置WEB-INF文件

?

<context-param><param-name>contextConfigLocation</param-name><param-value>WEB-INF/classes/applicationContext.xml</param-value></context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><servlet><servlet-name>CXFServlet</servlet-name><servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>CXFServlet</servlet-name><url-pattern>/ws/*</url-pattern></servlet-mapping>

?

?

?

第三步:编写接口及其实现类

接口类:@WebService  public interface IHelloWorld {//@WebParam给参数命名,提高可代码可读性。此项可选public String sayHi(@WebParam(name="text") String text);}实现类:@WebService(endpointInterface = "com.ce.IHelloWorld") public class HelloWorldImpl implements IHelloWorld {public String sayHi(String text) {// TODO Auto-generated method stubSystem.out.println("sayHello is called by " + text);return text;}}

?

?

第四步:对Spring进行配置,向外发布接口

?

?

?

<?xml version="1.0" encoding="UTF-8"?><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-2.5.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"><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" /><bean id="jaxWsServiceFactoryBean"value="true" /><property name="dataBinding" ref="aegisBean" /></bean><bean id="aegisBean"/><jaxws:endpoint id="CollectiveServices"implementor="com.ce.impl.HelloWorldImpl" address="/HelloWorld"><jaxws:serviceFactory><ref bean="jaxWsServiceFactoryBean" /></jaxws:serviceFactory></jaxws:endpoint></beans>

?

第五步:服务器端测试

启动tomcat,在浏览器地址栏输入http://localhost:8080/cxf-spring/ws/HelloWorld?wsdl,验证是否配置正确。

?

?

<wsdl:import Lo  location="http://localhost:8080/cxf-spring/ws/HelloWorld?wsdl=IHelloWo  world.wsdl" namespace="http://ce.com/" /> - <<wsdl:binding name="HelloWorldImplServiceSoapBinding" Ty  type="ns1:IHelloWorld">  <    <soap:binding style="document" Tr         transport="http://schemas.xmlsoap.org/soap/http" /> - <       <wsdl:operation name="sayHi">  <       <soap:operation soapAction="" style="document" /> - <       <wsdl:input name="sayHi">  <       <soap:body use="literal" />        </wsdl:input>- <      <wsdl:output name="sayHiResponse">  <     <soap:body use="literal" />   </wsdl:output>  </wsdl:operation>  </wsdl:binding>- <  <wsdl:service name="HelloWorldImplService">- <<wsdl:port binding="tns:HelloWorldImplServiceSoapBinding" Na  name="HelloWorldImplPort">  <soap:address location="http://localhost:8080/cxf-spring/ws/HelloWorld" /> 

??

?

第六步:编写客户端程序进行测试

private static ClassPathXmlApplicationContext context;         @BeforeClass      public static void beforeClass() {           context = new ClassPathXmlApplicationContext(                   new String[] { "classpath:client_beans.xml" });       }         @AfterClass      public static void afterClass() {           context = null;       }         @Test      public void testSayHiWithSpringConfig() throws Exception {             IHelloWorld client = (IHelloWorld) context.getBean("client");           String response = client.sayHi("Joe");           assertEquals("Joe", response);       }           @Test      public void testSayHiByCode() throws Exception {        JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();         factory.getInInterceptors().add(new LoggingInInterceptor());         factory.getOutInterceptors().add(new LoggingOutInterceptor());         factory.setServiceClass(IHelloWorld.class);         factory.setAddress("http://localhost:8080/cxf-spring/ws/HelloWorld");         IHelloWorld service = (IHelloWorld)factory.create();         assertEquals("Joe", service.sayHi("Joe"));}

?

?

热点排行