Spring2.5+Hibernate3.2+xfire开发webservice工程

 
Xml代码 复制代码  收藏代码
  1. <servlet>  
  2.     <servlet-name>XFireServlet</servlet-name>  
  3.     <servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>  
  4.     <load-on-startup>0</load-on-startup>  
  5. </servlet>  
  6. <servlet-mapping>  
  7.     <servlet-name>XFireServlet</servlet-name>  
  8.     <url-pattern>/services/*</url-pattern>  
  9. </servlet-mapping>  

 首先声明看本案例需要对spring Hibernate有初步了解,否则可能会比较吃力。

按照顺序添加相应的框架。

先添加spring,不用多说什么吧?应该都会的。如果不知道添加什么包,全部选上行了。够简单吧。

然后添加Hibernate,配置文件使用spring的。不需要创建HibernateSessionFactory。呵呵

然后添加xfire。也不是很困难呀。添加就行了。在这里呢。就要说几句了,最好是把xfire相应的包考到工程lib下面,否则你会很郁闷的。先不说了,按照正常的思路来配置吧。添加好了,你会发现

web.xml中增加了

 

这些是XFire的配置文件,删掉就行了,要不你还要改东西,是不是还缺少点什么呢,对啦,缺少spring的配置文件,现在需要将下面的代码拷贝到配置文件中

Xml代码 复制代码  收藏代码
  1. <!-- begin Spring配置 -->  
  2. <context-param>  
  3.    <param-name>contextConfigLocation</param-name>  
  4.    <param-value>/WEB-INF/applicationContext.xml,/WEB-INF/xfire-servlet.xml</param-value>  
  5. </context-param>  
  6. <listener>  
  7.    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
  8. </listener>  
  9.  <listener>    
  10.    <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>  
  11. </listener>  
  12. <!-- end Spring配置 -->  
  13.   
  14. <!-- begin XFire 配置 -->  
  15. <servlet>      
  16.    <servlet-name>xfire</servlet-name>      
  17.    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
  18. </servlet>      
  19. <servlet-mapping>    
  20.    <servlet-name>xfire</servlet-name>  
  21.    <url-pattern>*.ws</url-pattern>  
  22. </servlet-mapping>  
  23. <servlet>  
  24.    <!-- 配合Spring容器中XFire一起工作的Servlet-->  
  25.    <servlet-name>xfireServlet</servlet-name>  
  26.    <servlet-class>org.codehaus.xfire.spring.XFireSpringServlet</servlet-class>  
  27. </servlet>  
  28. <servlet-mapping>  
  29.    <servlet-name>xfireServlet</servlet-name>  
  30.    <!-- 在这个URI下开放Web Service服务 -->  
  31.    <url-pattern>/service/*</url-pattern>  
  32. </servlet-mapping>  
  33. <!-- end XFire 配置 -->  

 

这段配置文件是完整的啦,呵呵,拷贝上去就行了。

然后需要在/WEB-INF/目录下 创建xfire-servlet.xml文件备用。

文件内的内容

Xml代码 复制代码  收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans  
  3. xmlns="http://www.springframework.org/schema/beans"  
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  5. xmlns:aop="http://www.springframework.org/schema/aop"  
  6. xmlns:tx="http://www.springframework.org/schema/tx"  
  7. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd    
  8. http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd    
  9. http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">  
  10.   
  11. <!--将来所有的web服务信息就要写在这里了。-->  
  12.   
  13. </beans>  

 

好了,现在部署项目了,基本上我们的webservice服务已经搭建好了,启动tomcat吧。

哈哈,是不是发现报错啦,这个原因是因为xfire中默认已经为我们封装了 spring-1.2.6.jar 这么一个jar包,比较累的法子就是自己从tomcat中将这个jar包删掉,比较省事的呢就是新建一个工程,手动为项目添加xfire框架,我是用的后者,前者比较简单,就是在发布的时候比较麻烦,需要每次都去删除这个jar包,当然这里就不普及手动搭建框架的知识了,自己上网查资料吧。

好啦,spring-1.2.6.jar包删掉了,在启动,是不是正常了?

OK,现在我们的web服务系统 已经基本上搭建完成了,是不是该添加个类测试一下了,好说干就干。

到这里就需要重新提提那些话题了,本资料不是普及spring+Hibernate的,所以就不做太详细的介绍了

还是最简单的helloworld,新建一个helloworld吧

 

新建接口

Java代码 复制代码  收藏代码
  1. public interface HelloWorld {   
  2. public String hello(String name);   
  3. }  

 

新建类并实现接口

Java代码 复制代码  收藏代码
  1. public class HelloworldImpl implements HelloWorld {   
  2.     public String hello(String name){   
  3.         return name+" say: helloWorld!!!";   
  4.     }   
  5. }  

 

spring配置文件

Xml代码 复制代码  收藏代码
  1. <bean id="HelloworldI" class="HelloworldImpl"><!--依然还是很简单。-->  

 

厉害的就在xfire-servlet.xml文件中了,现在贴上内容,下面大部分信息是固定的,基本上拷贝上去就能用了。

Xml代码 复制代码  收藏代码
  1. <!-- 引入XFire预配置信息 -->  
  2. <import resource="classpath:org/codehaus/xfire/spring/xfire.xml" />  
  3. <!-- 定义访问的url -->  
  4. <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">  
  5.    <property name="urlMap">                
  6.     <map>  
  7.     <!-- 显示WebService 访问路径,有几个路径就需要 配置几个路径。 -->  
  8.      <entry key="/Helloworld.ws">                     
  9.       <ref bean="HelloworldWS" /><!--与下面的是对应的。-->               
  10.      </entry>  
  11.     </map>  
  12.    </property>  
  13. </bean>  
  14.   
  15. <!-- 使用XFire导出器 -->  
  16. <bean id="baseWebService" class="org.codehaus.xfire.spring.remoting.XFireExporter" lazy-init="false" abstract="true">  
  17.    <!-- 引用xfire.xml中定义的工厂 -->  
  18.    <property name="serviceFactory" ref="xfire.serviceFactory" />  
  19.    <!-- 引用xfire.xml中的xfire实例 -->  
  20.    <property name="xfire" ref="xfire" />  
  21. </bean>  
  22. <bean id="HelloworldWS" parent="baseWebService"><!-- 服务请求的地址,与上面访问的url地址是对应的 -->  
  23.    <!-- 业务服务bean --><!-- 我定义的接口的实现类 -->  
  24.    <property name="serviceBean" ref="HelloworldI" /><!--与spring配置文件中的是对应的-->  
  25.    <!-- 业务服务bean的窄接口类 --><!-- 我定义的接口 -->  
  26.    <property name="serviceClass" value="HelloWorld" /><!--接口,实现类的接口-->  
  27. </bean>  

 

Ok,现在就可以发布我们的工程了,http://localhost:8080/webservice/service/HelloWorld?wsdl然后访问这个地址看看是否成功吧。

需要说明的是,这个项目中没有使用到Hibernate,又需要的自行使用即可,我在这里就不做介绍了,因为我相信看这个帖子的朋友应该对ssh框架有过初步的了解了已经。如果实在不懂的话可以hi我或者Q我均可。

你可能感兴趣的:(Spring2.5+Hibernate3.2+xfire开发webservice工程)