`
wenrunchang123
  • 浏览: 251187 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

CXF与Spring 2.5整合

 
阅读更多

1.1资源下载

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

       Springhttp://www.springsource.com/download(spring2.5.5)

 

1.2系统环境

              JDK版本  1.6.0_18

              Tomcat版本:6.0 

 

1.3项目构建

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

 

 

接着导入Spring 依赖的包

 

 

第二步:配置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 stub
		System.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"
		class="org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean">
		<property name="wrapped" value="true" />
		<property name="dataBinding" ref="aegisBean" />
	</bean>

	<bean id="aegisBean"
		class="org.apache.cxf.aegis.databinding.AegisDatabinding" />

	<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=IHello
Wo  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"));

}

 

 

分享到:
评论

相关推荐

    cxf+Spring2.5

    【标题】"cxf+Spring2.5" 指的是使用Apache CXF框架与Spring 2.5版本进行集成的示例项目。Apache CXF是一个开源服务框架,它允许开发人员创建和消费Web服务,而Spring框架则是一个广泛使用的Java企业级应用的IOC...

    Apache CXF2+Spring2.5轻松实现WebService

    3. **CXF与Spring的整合**:Apache CXF可以通过Spring的ApplicationContext来加载和管理服务。通过在Spring配置文件中定义CXF服务端点(Endpoint)和数据绑定(Data Binding)组件,可以轻松地将Web服务集成到Spring...

    spring2.5+ibatis3+web service cxf 例子MyEclipse工程

    标题 "spring2.5+ibatis3+web service cxf 例子MyEclipse工程" 描述了一个集成开发环境(IDE)MyEclipse中的项目实例,该实例涉及了多个关键的Java技术栈,包括Spring 2.5、iBatis 3和Web服务框架CXF。这些技术在...

    spring2.5+xfire1.2.6 客户端和服务端的配置

    标题 "spring2.5+xfire1.2.6 客户端和服务端的配置" 涉及的是一个早期的Web服务集成方案,其中Spring 2.5是一个流行的Java应用框架,而Xfire 1.2.6则是一个用于构建和消费Web服务的库。在那个时代,Xfire是Spring...

    结合spring使用CXF 2.5 * 做服务端和客户端开发

    本篇文章将详细探讨如何结合Spring与CXF 2.5版本来实现服务端和客户端的开发,以及相关的源码分析和工具使用。 首先,让我们了解Spring与CXF的集成基础。Spring框架提供了一种优雅的方式来管理应用程序的组件,如...

    struts2+spring2.5+hibernate3.1整合包

    该整合包是我做的视频系统,资源管理系统,及考场系统项目中lib里打包出来的,应用中还有别的包我给选出来了,由于整个整合包太大,我只抽取了ssh2的相关包打包发布了,如果有别的应用整合包的需求可以联系我。...

    xfire+spring开发webservice

    另一份文档《开发XFire_Web_Service应用.pdf》可能包含了更多关于XFire的用法、最佳实践和案例研究,对于深入理解和掌握XFire与Spring的整合非常有帮助。 总的来说,使用XFire和Spring开发Web服务能够提供一个高效...

    webservice(xfire)+spring的二种实现方式

    Spring 2.5引入了对JSR-250注解的支持,如`@WebService`,这使得可以直接在服务接口和实现类上使用注解,减少了XML配置的需求。例如: ```java @WebService(targetNamespace = "http://example.com/myweb", service...

    WebService_CXF学习

    - JBI 整合:可以在 JBI 容器(如 ServiceMix, OpenESB, Petals)中部署服务引擎。 - J2EE 集成:可以将服务部署到 J2EE 应用服务器(如 Geronimo, JOnAS, JBoss, WebLogic, WebSphere)中。 - Java 客户端/...

    WebService_CXF学习.doc

    ### WebService与CXF基础知识详解 #### 一、WebService简介 **WebService** 是一种通过网络提供的服务,允许不同系统之间进行交互。它采用标准的Internet协议(如HTTP、XML、SOAP等),使得不同语言编写的程序能够...

    Springside技术参考手册

    在SpringSide 3中,集成的主流技术包括Spring 2.5、Hibernate 3、Struts 2、JSP 2.0、JQuery、JAX-WS 2(通过Apache CXF 2实现)以及SpringSecurity 2.0。这些组件的组合使得SpringSide成为一个强大的开发工具,减少...

Global site tag (gtag.js) - Google Analytics