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" value="/WEB-INF/jdbc_connect.properties"/> </bean> <!-- C3P0连接池配置 --> <bean id="dataSource" 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" 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 ref="sessionFactory"/> </bean> <bean id="QueryHib" ref="sessionFactory"/> </bean> <!—webservice 的bean类 --> <bean id="QueryHibRis" 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.OracleDriverjdbc.url=jdbc:oracle:thin:@172.17.99.230:1521:bsrunjdbc.username=userjdbc.password=userhibernate.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 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; } } 完结,以上代码是我在实际应用中改编而成,都经过测试,肯定好用。