请注意,需要下载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;
}
}
完结,以上代码是我在实际应用中改编而成,都经过测试,肯定好用。
分享到:
相关推荐
综合来看,"Xfire+Spring+Hibernate WebService"项目利用了这些工具和技术的协同工作,实现了高效、灵活的Web服务开发。Xfire提供Web服务的基础框架,Spring为业务逻辑提供了容器和管理,而Hibernate则处理了数据...
本案例中的"xfire+spring+hibernate"是一种早期的整合方式,它将Web服务(通过XFire实现)、Spring框架的依赖注入与管理以及Hibernate的持久层处理结合在一起。以下是对这种整合方式的详细解释。 1. **XFire**:...
Spring+Hibernate+Xfire+发布WebService教程文档
以下是关于"Xfire配置Web Service+Spring+Hibernate详细配置流程"的知识点详解: 1. **Spring框架**: Spring是Java企业级应用开发的首选框架,提供依赖注入(DI)和面向切面编程(AOP)。在Web服务场景中,Spring...
SSH(Struts2 + Spring + Hibernate)是一种常见的Java Web开发框架组合,用于构建高效、可维护的Web应用程序。Struts2提供了MVC(Model-View-Controller)架构,Spring为应用提供依赖注入(DI)和面向切面编程(AOP...
网上资料大多是只有spring+xfire 含有Hibernate的少 3.配置时候还遇到spring实现 客户端调用服务器端时候 注入失败 4.在服务器端向客户端做映射的时候失败 5.在服务器端获取非基本类转化问题
总结来说,"Spring+Hibernate+Struts+XFire的WebService实例"提供了一个完整的Java Web服务解决方案,涵盖了从数据持久化到用户界面,再到Web服务的整个开发流程。这个实例对于学习和理解企业级Java应用的开发具有很...
标题 "spring webService hibernate结合xfire" 描述了一个整合技术的应用,即Spring、Web服务(WebService)和Hibernate框架与Xfire的结合。在这个项目中,开发者可能想要创建一个基于Java的Web服务,该服务能够利用...
JQuery1.4.2+Struts2.1.8+JSON0.34+Spring2.5.6+Hibernate3.5+XFire1.2.6整合实例(已上传) 1、JSON0.34使用的是struts2附带的struts2-json-plugin-2.1.8.1.jar 2、db是mysql,名字为test,用户名root,密码空 3、...
总的来说,这个实例展示了如何在Java环境中使用XFire来创建和消费WebService,同时结合Hibernate进行数据持久化,利用Spring框架进行服务管理和依赖管理,形成一个完整的分布式系统解决方案。这对于我们理解和掌握...
CXF环境配置 - jackymin CXF与Spring的集成 log4j的配置使用 Spring XML配置十二个最佳实践WebService开发实例 (Xfire+Spring+Hibernate)
Xfire Spring Hibernate 发布WebService(源码) Xfire1.2 Spring 2.0 Hibernate 3 发布WebService 一、准备工作 1、下载安装MyEclipse6.5 2、下载安装MySQL Server 5.1 3、下载MySQL驱动 mysql-connector-java...
### Xfire配置Web Service+Spring+Hibernate详细流程 在IT领域,尤其是企业级应用开发中,集成Web Service、Spring框架以及Hibernate技术是非常常见的需求。本文将深入解析如何使用Xfire来配置并集成这三个核心技术...
标题中的"Spring+Hibernate+Xfire"是一个集成开发的框架组合,主要应用于Java后端开发。这个组合将Spring的依赖注入、事务管理等优势,与Hibernate的持久化能力,以及Xfire的Web服务支持相结合,形成一个强大的企业...
【Xfire Spring Hibernate 发布WebService】是将Xfire、Spring和Hibernate这三种技术结合,用于在MyEclipse环境中创建和发布Web服务。Xfire是一个基于Java的SOAP和REST Web服务框架,Spring则提供了依赖注入和AOP...
本文档主要介绍了如何在现有的Spring2.5+Hibernate3.2基础上添加XFire来实现WebService服务的配置过程。通过逐步指导的方式,帮助读者了解整个配置流程,并提供相关的截图以辅助理解。 #### 环境准备 在开始之前,...
【xfire集成spring+hibernate实现webservice样例工程】是一个典型的Java开发中的整合案例,它演示了如何将三个重要的技术框架——XFire、Spring和Hibernate有效地结合在一起,以构建一个提供Web服务的工程。...
invalid SOAP request: 当在浏览其中报此错误的时候,实际上是因为WebService针对的是客户端请求,而不是浏览器的访问. 只要建立了测试类,在测试类中访问就可以了. applicationContext.xml 一直是放置在WEB-INF目录...
【xfire webservice 实例】是一个综合性的项目,它整合了xfire、Spring和Hibernate三大技术,用于构建高效、灵活的Web服务。Xfire是一款强大的Java Web服务框架,它简化了创建、部署和消费Web服务的过程。Spring是...
"cxf+spring+hibernate集成整合jar包"就是这样一个集合,它将三个关键的技术框架——CXF、Spring和Hibernate整合在一起,为开发人员提供了一个强大的后端服务开发平台。以下是对这些技术及其集成的详细解释。 **CXF...