`
dreamoftch
  • 浏览: 498115 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

CXF spring 整合

 
阅读更多

http://www.cnblogs.com/shenliang123/archive/2012/04/16/2451570.html

 

 

将webService(CXF)与spring集成

将cxf与spring相关的架包拷到lib目录下,然后在classpath下新建一个cxfbeans.xml(进行cxf与spring的集成)文件和applicationContext.xml(进行ssh2的配置),

applicationContext.xml

复制代码
<?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:context="http://www.springframework.org/schema/context"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:aop="http://www.springframework.org/schema/aop" 
    xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
           http://www.springframework.org/schema/context 
           http://www.springframework.org/schema/context/spring-context-2.5.xsd
           http://www.springframework.org/schema/aop 
           http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
           http://www.springframework.org/schema/tx 
           http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
           
    <!-- 配置数据源,导入c3p0-0.9.1.2.jar,mysql-connector-java-5.1.7-bin.jar -->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
        destroy-method="close">
        <property name="driverClass">
            <value>net.sourceforge.jtds.jdbc.Driver</value>
        </property>
        <property name="jdbcUrl">
            <value>jdbc:jtds:sqlserver://localhost:9433/web_exam</value>
        </property>
        <property name="user">
            <value>sa</value>
        </property>
        <property name="password">
            <value>123</value>
        </property><!--
        初始化时获取的连接数,取值应在minPoolSize与maxPoolSize之间。Default: 3 
        --><property name="initialPoolSize" value="1"/><!--
        连接池中保留的最小连接数。
        --><property name="minPoolSize" value="1"/><!--    
        连接池中保留的最大连接数。Default: 15 
        --><property name="maxPoolSize" value="300"/><!--
        最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 
        --><property name="maxIdleTime" value="60"/><!--    
        当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 
        --><property name="acquireIncrement" value="5"/><!--    
        每60秒检查所有连接池中的空闲连接。Default: 0 
        --><property name="idleConnectionTestPeriod" value="60"/><!--

    
    
        C3P0连接池设定,hibernate自带的连接池性能不行,而去使用第三方软件,如C3P0  
             连接池的最小连接数   
         <property name="hibernate.c3p0.min_size" value = "5"></property>  
             最大连接数   
         <property name="hibernate.c3p0.max_size" value = "30"></property>  
             连接超时时间  
         <property name="hibernate.c3p0.timeout" value = "1800"></property>  
             statemnets缓存大小   
         <property name="hibernate.c3p0.max_statements" value = "100"></property>  
              每隔多少秒检测连接是否可正常使用 ;最后在网上找到一个办法。为hibernate配置连接池,推荐用c3p0,然后配置c3p0的反空闲设置 idle_test_period,(只要小于MySQL的wait timeout即可,这句话后经证实不一定)。    
         <property name="hibernate.c3p0.idle_test_period" value = "121"></property>  
             当池中的连接耗尽的时候,一次性增加的连接数量,默认为3   
         <property name="hibernate.c3p0.acquire_increment" value = "1"></property>  
         <property name="hibernate.c3p0.validate" value = "true"></property>  
    --></bean>
    
    <bean name="hibernateProperties"
        class="org.springframework.beans.factory.config.PropertiesFactoryBean">
        <property name="properties">
            <props>
                
                <prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
                <!--<prop key="hibernate.hbm2ddl.auto">update</prop> 
                --><prop key="hibernate.cache.provider_class">
                    org.hibernate.cache.NoCacheProvider
                </prop>
                <!--<prop key="hibernate.show_sql">true</prop>
            --></props>
        </property>
    </bean>
    
     <!--定义了Hibernate的SessionFactory -->
    <bean id="sessionFactory"
        class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="hibernateProperties" ref="hibernateProperties" />
        <property name="mappingLocations">
            <list>
                <value>classpath*:xidian/sl/entity/*.hbm.xml</value>
                
            </list>
        </property>
    </bean>
    


    <!-- 事务配置 -->
    <bean id="transactionManager"
        class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory" />
    </bean>
    
    <bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">
        <!--  事务拦截器bean需要依赖注入一个事务管理器 -->
        <property name="transactionManager" ref="transactionManager"/>
        <property name="transactionAttributes">
            <!--  下面配置事务属性-->
            <props>
            
            <!--PROPAGATION_REQUIRE规则表示:在bean中所有以get开头的方法,当抛出异   
                常时,自动回滚,并只读,其他异常自动回滚-->  
            
                   <!-- 事务处理,如果没有跟这里匹配的名,系统会默认是readOnly -->
                   <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
                <prop key="*">PROPAGATION_REQUIRED,-Exception</prop>
                <prop key="*">ISOLATION_SERIALIZABLE</prop>  
            </props>
        </property>
    </bean>
    
    
    <!-- 定义BeanNameAutoProxyCreator-->
    <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
        <!--  指定对满足哪些bean name的bean自动生成业务代理 -->
        <property name="beanNames">
            <!--  下面是所有需要自动创建事务代理的bean-->
            <list>
                <value>*Service</value>
                <value>*DAO</value>
            </list>
            <!--  此处可增加其他需要自动创建事务代理的bean-->
        </property>
        <!--  下面定义BeanNameAutoProxyCreator所需的事务拦截器-->
        <property name="interceptorNames">
            <list>
                <!-- 此处可增加其他新的Interceptor -->
                <value>transactionInterceptor</value> 
            </list>
        </property>
    </bean>
    <!-- 事务配置结束 -->
    
</beans>
复制代码

cxfbeans.xml

复制代码
<?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.xsd
                http://www.springframework.org/schema/context
                http://www.springframework.org/schema/context/spring-context.xsd
                http://cxf.apache.org/jaxws 
                http://cxf.apache.org/schemas/jaxws.xsd">
        
                <import resource="classpath:META-INF/cxf/cxf.xml" />  <!-- 这些xml文件在cxf-2.5.0.jar的META-INF目录下-->
                <!--<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
                        警告提示已经废弃了cxf-extension-soap.xml文件-->
                <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />

                
                <!-- 这里配置服务接口,后面描述
                
                    id:指在spring配置的bean的ID.

                    Implementor:指明具体的实现类.

                    Address:指明这个web service的相对地址
                 -->
                    
                    <!-- 考生登录接口配置 -->
                    <!-- 这里service中DAo层的注入必须写在该配置文件中,因为客户端只能看到该配置文件 -->
                      <bean id="examineeLoginServiceImpl" class="xidian.sl.service.impl.webService.ExamineeLoginServiceImpl" >
                        <property name="examineeLoginDAO" ref="examineeLoginDAO"></property>
                    </bean>
                    <jaxws:endpoint id="examineeLoginService" 
                            implementor="#examineeLoginServiceImpl"
                            address="/examineeLogin" />
                           
                            
                      <!-- 考试开始接口配置 -->
                      <bean id="examStartServiceImpl" class="xidian.sl.service.impl.webService.ExamStartServiceImpl" >
                          <property name="examStartDAO" ref="examStartDAO"></property>
                      </bean>
                    <jaxws:endpoint id="examStartService" 
                            implementor="#examStartServiceImpl"
                            address="/examStart" />
                      
                      
                      <!-- 接受答案处理 -->
                      <bean id="answerManageServiceImpl" class="xidian.sl.service.impl.webService.AnswerManageServiceImpl" >
                          <property name="answerManageDAO" ref="answerManageDAO"></property>
                      </bean>
                    <jaxws:endpoint id="answerManageService" 
                            implementor="#answerManageServiceImpl"
                            address="/answerManage" />
                      
                      
                      
                  <!-- 开启tomcat服务器 ,访问http://localhost:8080/WebExam/services/zipTest?wsdl 
                      http://localhost:8080/WebExam是本项目的访问地址

                    services是由于web.xml配置所得,zipTest是由于Spring配置文件中的address属性所得
                  
                  -->
                  
        </beans>

        
复制代码

 要使得客户端能够正常的调用,我们还必须在web.xml下进行访问地址的配置,即配置Servlet(org.apache.cxf.transport.servlet.CXFServlet)的访问

web.xml:

复制代码
<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>/services/*</url-pattern>
    </servlet-mapping>
复制代码

 

分享到:
评论

相关推荐

    CXF Spring 整合

    在Java EE应用开发中,发布和消费Web服务是一项常见的任务,CXF和Spring框架的整合提供了强大而灵活的解决方案。本篇文章将详细讲解如何利用CXF和Spring进行整合,以便在Java EE应用中轻松地发布和调用Web服务。 ...

    cxf+spring整合

    "CXF+Spring整合"是企业级Java应用程序中常用的一种技术组合,它结合了Apache CXF(一个用于构建和服务导向架构的开源框架)和Spring框架的优势,以实现高效、灵活的服务开发和管理。在Java世界里,CXF常用于创建Web...

    webservice cxf spring整合返回list,bean,string,json,xml项目完整实例

    8. **Spring整合**:Spring可以用来管理CXF的服务实例,通过`&lt;jaxws:endpoint&gt;`标签在Spring配置文件中声明和配置Web服务。同时,Spring的DI可以帮助我们轻松地注入依赖,简化代码。 9. **项目结构**:典型的项目...

    spring整合cxf

    整合Spring和CXF的主要目的是利用Spring的管理能力来控制CXF的服务生命周期,以及利用Spring的配置优势来简化CXF的设置。这可以通过以下几种方式实现: 1. **基于XML的配置**:在`integrateSpringWithCXF1`中,我们...

    cxf整合spring

    将CXF与Spring整合的主要好处在于,可以利用Spring的强大管理和配置能力来管理CXF服务。Spring的DI可以帮助我们将CXF的服务bean与其他业务逻辑bean解耦,从而提高代码的可测试性和可维护性。此外,Spring还提供了对...

    CXF和spring整合所需jar包

    这里我们将深入探讨CXF与Spring整合时所需的jar包及其作用。 首先,我们需要理解整合的目的:通过Spring管理CXF的服务生命周期,使得服务的创建、配置和管理更加便捷。为了实现这一目标,我们需要以下关键的jar包:...

    cxf 结合spring所需jar包

    在Java企业级应用开发中,CXF和Spring框架的整合是常见的实践,它们共同构建了高效、灵活的服务层。CXF是一个开源的Web服务框架,它支持SOAP、RESTful等多种Web服务标准,而Spring则是一个全面的企业级应用框架,...

    cxf spring maven 实例

    5. **Spring整合CXF**:Spring可以通过`cxf-spring`模块来集成CXF,通过`&lt;jaxws:endpoint&gt;`或`&lt;jaxrs:server&gt;`标签在Spring配置文件中声明Web服务。这样,Spring容器会管理Web服务的生命周期,服务实例可以在需要时...

    CXF整合Spring步骤

    在企业级应用开发中,Apache CXF 和 Spring 框架的整合是非常常见的,因为它们分别提供了强大的服务端和客户端的 Web 服务支持以及灵活的依赖注入和配置管理。本教程将详细介绍如何将 CXF 与 Spring 整合,帮助...

    CXF Spring Web Service 程序

    【CXF与Spring整合Web服务详解】 在Java世界中,Apache CXF是一个广泛使用的开源框架,用于构建和部署Web服务。它提供了丰富的功能,包括SOAP、RESTful API的支持,以及与Spring框架的深度集成。本篇文章将深入探讨...

    Spring整合CXF发布服务

    当我们需要在Spring环境中发布Web服务时,Spring与CXF的整合就显得尤为重要。本篇文章将深入探讨如何实现Spring与CXF的整合,以便发布服务。 1. **Spring与CXF整合的基础** 在整合Spring和CXF之前,我们需要确保...

    WebService的CXF整合Spring

    将CXF与Spring整合的主要目的是利用Spring的管理能力来配置和控制CXF组件,例如服务端点、客户端代理等。这样可以实现更细粒度的控制,提高代码的可测试性和可维护性。 整合步骤如下: 1. **引入依赖**:首先,在...

    cxf与Spring的整合实例(适合初学者)

    **标题解析:** "cxf与Spring的整合实例(适合初学者)" 指的是一个教程或示例项目,旨在帮助初次接触CXF和Spring框架的开发者理解如何将这两个强大的开源工具集成在一起。CXF是一个流行的开源服务框架,常用于构建...

    CXF与Spring整合需要的完整jar文件

    首先,让我们了解CXF与Spring整合的基础知识: 1. **Spring容器**:Spring框架的核心是IoC(Inversion of Control)容器,它负责管理对象的生命周期和依赖关系。在整合CXF时,我们将利用Spring来配置和管理CXF的...

    CXF整合spring的客户端和服务端

    将CXF与Spring整合,可以充分利用Spring的管理能力,简化服务的创建和维护。 1. **整合步骤** - **配置Spring**:首先,我们需要在Spring配置文件中定义CXF的相关bean,如服务接口的实现类、服务端点、服务发布器...

    CXF+Spring整合资料

    将CXF与Spring整合,可以充分利用Spring的强大功能来管理CXF服务,简化开发过程,并提高可维护性。 标题"CXF+Spring整合资料"指的是将这两个框架结合使用的教程或参考资料,可能包括如何配置、如何创建和调用Web...

    webservice(cxf)与spring整合源码+文档

    标题"webservice(cxf)与spring整合源码+文档"表明这是一个关于如何将CXF Web服务与Spring框架集成的学习资源。文档和源代码一起提供,使得学习者能够通过实践来理解这一过程。 描述中提到"webservice与spring整合...

    Spring整合CXF demo

    **Spring整合CXF详解** Spring框架与Apache CXF的整合是企业级Java应用中常见的实践,主要用于构建基于SOAP和RESTful服务。这个"Spring整合CXF demo"项目提供了一个直观的例子,帮助开发者理解如何在Spring环境中...

    cxf与spring整合源码,包括客户端和服务端

    针对目前网上的很多cxf相关的服务开发源码不能使用,自己做的cxf与spring的整合,里面包含了服务端和客户端代码,还有说明文档,这个demo使用的是cxf的服务端,axis2的客户端,希望能够帮到cxf初学者们。

    spring+cxf 整合jar包

    在IT行业中,Spring框架和CXF服务框架的整合是一个常见的任务,主要用于构建高效、灵活的分布式服务系统。本文将深入探讨Spring与CXF整合的核心概念、步骤以及它们各自的功能。 **Spring框架** 是一个开源的应用...

Global site tag (gtag.js) - Google Analytics