`
lzkyo
  • 浏览: 466133 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring整合webService xfire

阅读更多
注意,需要下载Xfire1.2.6、spring2.0,hibernate 3.0相关类库及相关数据库的jdbc驱动。本文相关内容是在myeclipse5.1下完成。

 

一、           首先在web.xml中添加对xfire及spring支持的相关内容,如下:

 

<?xml version="1.0" encoding="ISO-8859-1"?>

 

<!DOCTYPE web-app

    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"

    "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

<!-- START SNIPPET: xfire -->

<context-param>

<!—xfire及spring相关配置文件位置 -->

 

        <param-name>contextConfigLocation</param-name>

        <param-value>/WEB-INF/applicationContext.xml 

        classpath:org/codehaus/xfire/spring/xfire.xml</param-value>

    </context-param>

 

    <context-param>

        <param-name>log4jConfigLocation</param-name>

        <param-value>/WEB-INF/log4j.properties</param-value>

    </context-param>

    

    <context-param>

        <param-name>webAppRootKey</param-name>

        <param-value>webservicetest.root</param-value>

    </context-param>

 

 

     <filter>

        <filter-name>sessionFilter</filter-name>

        <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>

    </filter>   

    <filter-mapping>

        <filter-name>sessionFilter</filter-name>

        <url-pattern>/services/*</url-pattern>

    </filter-mapping>        

       

    <listener>

        <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>

    </listener>

 

    <listener>

        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

    </listener>    

      

     <servlet>

        <servlet-name>xfire</servlet-name>

        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

    </servlet>

   

 

    <servlet-mapping>

        <servlet-name>xfire</servlet-name>

        <url-pattern>/services/*</url-pattern>

    </servlet-mapping>       

    

<!-- END SNIPPET: xfire -->

</web-app>

 

二、           applicationContext.xml文件内容:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">

<beans>

 

<!-- 数据库连接配置 -->

    <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 

    

        <property name="location" value="/WEB-INF/jdbc_connect.properties"/>

        

    </bean>

        

    <!-- C3P0连接池配置 -->

    

    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">     

        

        <property name="driverClass" value="${jdbc.driverClassName}"/>

        <property name="jdbcUrl" value="${jdbc.url}"/>

        <property name="user" value="${jdbc.username}"/>

        <property name="password" value="${jdbc.password}"/>

        

        <property name="initialPoolSize">

            <value>5</value>

        </property>

         <property name="minPoolSize">

             <value>5</value>

         </property>

         <property name="maxPoolSize">

             <value>10</value>

         </property>

         <property name="acquireIncrement">

             <value>2</value>

         </property>

         <property name="maxIdleTime">

             <value>60</value>

         </property>

         <property name="maxStatements">

             <value>0</value>

         </property>     

    </bean> 

    <!-- C3P0结束 -->

    

    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

        <property name="dataSource" ref="dataSource"/>

        <property name="mappingResources">

            <list>

            <!—hibernate的hbm文件位置 ,至于hbm文件可以通过工具生成,这里就不详述了-->

                <value>com/dao/emp.hbm.xml</value>              

            </list>

        </property>

        <property name="hibernateProperties">

            <props>

                <prop key="hibernate.dialect">${hibernate.dialect}</prop>       

                <prop key="hibernate.show_sql">true</prop>                  

                <prop key="hibernate.jdbc.fetch_size">100</prop> 

                <prop key="hibernate.jdbc.batch_size">50</prop> 

                <prop key="hibernate.use_outer_join">true</prop>                

                <prop key="hibernate.connection.SetBigStringTryClob">true</prop>

            </props>            

        </property>

        

        <property name="eventListeners">

            <map>

                <entry key="merge">

                    <bean class="org.springframework.orm.hibernate3.support.IdTransferringMergeEventListener"/>

                </entry>

            </map>

        </property>

    

    </bean>

    

    

    

    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">

        <property name="sessionFactory" ref="sessionFactory"/>

    </bean>

    

    <bean id="QueryHib" class="Hello.HelloworldImpl ">

        <property name="sessionFactory" ref="sessionFactory"/>

    </bean>

     

    

    <!—webservice 的bean类 -->

    

    <bean id="QueryHibRis" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">

        <property name="transactionManager" ref="transactionManager"/>

        <property name="target" ref="QueryHib"/>

        <property name="transactionAttributes">

            <props>         

            <prop key="*">PROPAGATION_REQUIRED</prop>                   

            </props>

        </property>

    </bean> 

    

</beans>

 

<!-- jdbc_connect.properties文件内容,主要是数据库配置,以下是oracle数据库 -->

 

jdbc.driverClassName=oracle.jdbc.driver.OracleDriver

jdbc.url=jdbc:oracle:thin:@172.17.99.230:1521:bsrun

jdbc.username=user

jdbc.password=user

hibernate.dialect=org.hibernate.dialect.Oracle9Dialect

 

三、           xfire-servlet.xml文件内容,如下:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"  >

 

<beans>

    <!-- START SNIPPET: xfire -->

    <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">

        <property name="urlMap">

            <map>

                <entry key="/QueryService">

                    <ref bean="query"/>

                </entry>   

             </map>

        </property>

        

    </bean>

    

    <!-- Declare a parent bean with all properties common to both services -->

    <bean id="query" class="org.codehaus.xfire.spring.remoting.XFireExporter">

        <property name="serviceFactory">

            <ref bean="xfire.serviceFactory"/>

        </property>

        <property name="xfire">

            <ref bean="xfire"/>

        </property>

        <property name="serviceBean"> 

            <ref bean="QueryHibRis"/>  <!—请注意这个需在applicationContext.xml有定义-->

 

        </property>

        <property name="serviceClass">

            <value> Hello.IHelloworld </value>

        </property> 

        

    </bean>   

    <!-- END SNIPPET: xfire -->

</beans>

 

四、Hello.HelloworldImpl类内容,主要是查询数据库并返回结果

 

package Hello;

 

 

import java.util.Collection;

 

//Generated by MyEclipse

 

public class HelloworldImpl implements IHelloworld { 

    

    public Collection User(){   

    return getHibernateTemplate().find("select new Helloworld.User(userid,username) from emp"); 

                

    }

    

}

 

IHelloworld接口内容

package Hello;

//Generated by MyEclipse

 

import java.util.Collection;

 

 

public interface IHelloworld {

    

    public Collection User();

}

//xfire对于返回collection的,需要定义接口的IHelloworld.aegis.xml文件,需放在当前接口文件目录下。

 

<?xml version="1.0" encoding="UTF-8"?>

 <mappings>

    <mapping>

        <method name= "User" >

            <return-type componentType= "Helloworld.User" />           

        </method>          

        

    </mapping>    

    

</mappings>

 

Helloworld.User类内容:

package Helloworld;

 

public class User {

    

    String userid;

    String username;

//一定要定义此构造函数,在Hello.HelloworldImpl中有用到哟。

    Public User(String userid,String username){

        this.userid = userid;

this.username = username;

 

}   

 

    public String getUserid() {

        return userid;

    }

    public void setUserid(String userid) {

        this.userid = userid;

    }

    public String getUsername() {

        return username;

    }

    public void setUsername(String username) {

        this.username = username;

    }

 

}

 

完结,以上代码是我在实际应用中改编而成,都经过测试,肯定好用。



分享到:
评论

相关推荐

    webservice xfire整合spring(webservice配置采用注解)例子

    2. **Spring整合Xfire**:Spring通过其强大的IoC(Inversion of Control)容器,使得集成Xfire变得简单。它允许开发者在Spring配置中声明Web服务,通过注解来定义服务接口和实现,降低了配置文件的复杂性。 3. **...

    webservice spring xfire的实例

    【标题】:“Web服务与Spring整合——XFire实战” 【描述】:这篇博客文章通过一个实际的案例,探讨了如何将Web服务与Spring框架相结合,使用XFire进行开发。XFire是Spring框架早期用于实现Web服务的一个库,它提供...

    spring+xfire( 编写webservice完整配置+案例)

    然而,在这个特定的案例中,我们使用的是XFire,因为它在早期被广泛使用,并且与Spring有良好的集成。 1. **安装和配置XFire**: 在开始之前,确保你的开发环境中已经包含了XFire的库。你可以通过Maven或Gradle将...

    Spring2.0和XFire1.2.6整合案例

    在IT行业中,集成框架是开发复杂应用程序的关键,Spring和XFire就是两个重要的工具。Spring作为一个强大的Java企业级应用开发框架,提供了丰富的功能,包括依赖注入、面向切面编程(AOP)以及各种服务管理。而XFire...

    webservice xfire spring2.0完整实例

    1. **XFire与Spring的整合**: - Spring通过`org.springframework.remoting.jaxws`包中的类与XFire进行集成,例如`LocalXFireWebServiceProxyFactoryBean`和`XFireWebServiceExporter`。前者用于创建Web服务客户端...

    spring3.0整合Xfire1.2.6 开发webservice需要的jar包

    本篇将详细讲解如何利用Spring 3.0与Xfire 1.2.6进行集成,以开发高效的Web服务。 首先,让我们了解Spring 3.0。Spring 3.0是Spring框架的一个重大更新,引入了许多新特性和改进,如支持JSR-303 Bean Validation,...

    spring集成xfire webservice实现

    spring集成xfire webservice实现远程调用 将项目发布后,点击http://localhost:8080/SpringWebServiceTest/services/HelloWS?wsdl即可 其中也有客户端的调用,自己试试吧。

    整理xfire和spring的集成 web service 面向服务编程 java

    【整合XFire与Spring进行Web Service开发】 XFire是一个基于Java的SOAP Web Service框架,而Spring是一个广泛应用的轻量级框架,它提供了依赖注入、面向切面编程等特性。将两者集成可以方便地构建和消费Web Service...

    webservice xfire jar包 spring

    将XFire与Spring集成,可以方便地在Spring应用中创建和消费Web服务。 **Web服务基础** Web服务基于开放标准,如SOAP(简单对象访问协议)和WSDL(Web服务描述语言),使得服务提供者可以通过HTTP协议暴露功能,服务...

    XFire整合spring webservice

    将XFire与Spring整合可以充分利用Spring的优秀特性,提高Web服务的开发效率和可维护性。本教程主要针对初学者,旨在通过一个清晰、简单的项目,介绍如何将XFire与Spring进行整合。 1. **环境准备** 在开始整合前,...

    xfire+spring+webservice+client

    标题中的“xfire+spring+webservice+client”是一个关于集成XFire、Spring框架和Web服务客户端的专题,这涉及到Java开发中的一项重要技术——Web服务的消费与提供。在这个主题下,我们将深入探讨以下几个核心知识点...

    使用XFire发布WebService

    【标题】: 使用XFire发布WebService 在Web服务的世界中,XFire是一个强大的开源框架,它使得开发和部署Web服务变得简单。XFire是Apache CXF的前身,它提供了全面的WS-*支持,包括SOAP、WSDL、UDDI、MTOM等标准,...

    spring和xfire 整合webservice

    Spring 和 XFire 的整合是构建基于Java的Web服务的一个高效方案。Spring是一个广泛使用的开源框架,它提供了全面的依赖注入、面向切面编程以及企业级应用开发的支持。XFire则是针对SOAP(简单对象访问协议)服务的一...

    使用xfire+spring构建webservice

    标题“使用xfire+spring构建webservice”指出的是一个关于如何利用XFire和Spring框架创建Web服务的教程。XFire是早先的一个用于构建Web服务的开源Java库,它简化了SOAP(简单对象访问协议)服务的开发。而Spring框架...

    xfire+spring开发webservice

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

    Spring XFire 实现webService

    2. XFire相关的jar文件:如`xfire-core`, `xfire-aegis`, `xfire-annotations`, `xfire-spring`等,它们提供了Web服务的实现和与Spring的集成支持。 在Spring配置中,我们可以通过以下步骤来配置XFire: 1. 引入...

    spring3整合xfire3

    spring3整合xfire3,包含jar,基于Java的一个简单的webservice 直接跟javaweb一样点运行网址为 localhost/webservice/servlet/XFireServlet/Echo?wsdl WEB-INF下的META-INF下的services.xml定义了Echo,并定义了接口...

    spring 集成xfire 比较好的一种方式

    Spring 和 XFire 的集成是构建基于 SOAP 的 Web 服务的一种高效方法。XFire 是一个 Java 框架,专门用于创建和消费 Web 服务,而 Spring 框架则提供了全面的企业级应用开发支持。将这两者结合可以利用 Spring 的强大...

    spring webService hibernate结合xfire

    标题 "spring webService hibernate结合xfire" 描述了一个整合技术的应用,即Spring、Web服务(WebService)和Hibernate框架与Xfire的结合。在这个项目中,开发者可能想要创建一个基于Java的Web服务,该服务能够利用...

    Spring+xFire实现webService

    Spring+xFire 实现 WebService 是一种在 Java 开发中创建和使用 Web 服务的方式,它结合了 Spring 框架的灵活性和 xFire(现在称为 Apache CXF)的 Web 服务功能。以下是对这个技术栈的详细说明: 1. **环境配置**...

Global site tag (gtag.js) - Google Analytics