Spring2.5+Hibernate3.2+XFire配置Webservice教程

5星 · 超过95%的资源 需积分: 10 8 下载量 143 浏览量 更新于2024-08-01 收藏 1015KB DOC 举报
"xfire+webservice(服务器配置篇)\nSpring2.5+Hibernate3.2+xfire开发webservice工程\nTomcat\nSOA\nJBoss" 这篇文档主要介绍了如何在已有的Spring 2.5和Hibernate 3.2项目中集成XFire来开发Web服务。XFire是一款用于构建和消费Web服务的Java框架,它提供了简单且高效的方式来实现SOAP协议。Spring框架则负责管理和协调应用中的组件,而Hibernate则作为持久层框架,处理数据库交互。 在配置过程中,首先需要在项目中引入XFire的相关库。这通常可以通过在项目的`lib`目录下添加XFire的JAR文件来完成,以便项目能够识别并使用XFire提供的服务。然后,在IDE中通过特定步骤设置项目,使其支持Web服务,例如,选择XFire包并完成相关配置。 接着,关键的配置发生在`web.xml`文件中。在这个文件中,我们需要定义一个Servlet来处理Web服务请求。例如,创建一个名为`xfire`的Servlet,其类为`org.springframework.web.servlet.DispatcherServlet`。Servlet映射到`.ws`的URL模式,这意味着所有以`.ws`结尾的请求都将由这个Servlet处理。 ```xml <!--beginXFire配置--> <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>*.ws</url-pattern> </servlet-mapping> ``` 在Spring配置文件中,还需要设置XFire相关的bean,包括服务接口和服务实现,以及可能的DAO层组件,以便将业务逻辑暴露为Web服务。这些bean的定义将告诉Spring如何实例化和管理Web服务。 ```xml <!-- XFire 配置 --> <bean id="serviceBean" class="com.example.MyWebService"> <!-- 注入依赖的业务或DAO对象 --> <property name="myBusinessObject" ref="businessObject"/> </bean> <bean id="xfireConfig" class="org.xfire.spring.XFireSpringConfigurator"> <property name="serviceBeans"> <list> <ref bean="serviceBean"/> </list> </property> </bean> ``` 此外,由于原始项目基于SSH(Spring、Struts、Hibernate)架构,所以可能存在其他的配置,如Spring的ApplicationContext配置,Struts的Action配置,以及Hibernate的数据源和SessionFactory配置等,但这些在文档中没有详细展开。 最后,配置完成后,可以启动服务器(如Tomcat、JBoss等支持Servlet的服务器),通过测试工具或者客户端调用Web服务来验证配置是否成功。Web服务的调用通常基于WSDL(Web Service Description Language)文件,该文件由XFire自动生成,描述了服务的接口、方法和消息格式。 这个文档提供了一个基础的Spring、Hibernate和XFire集成的Web服务开发流程,适合那些希望通过已有项目扩展Web服务功能的开发者参考。不过,由于篇幅有限,文档中只展示了部分配置步骤,实际操作时可能还需要查阅更多的参考资料来完善整个流程。
2012-03-06 上传
package com.xfire.core.client; import java.net.MalformedURLException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.codehaus.xfire.client.XFireProxyFactory; import org.codehaus.xfire.service.Service; import org.codehaus.xfire.service.binding.ObjectServiceFactory; import com.xfire.core.entity.UserInfo; import com.xfire.core.service.IUserInfoService; /** *@author jilongliang *@Date 2012-3-5 * */ public class UserInfoClient { public static void main(String[] args) { getServiceList(); setServiceList(); } static String url = "http://localhost:8081/xfire/services/UserInfo"; /** * */ public static void getServiceList() { Service service = new ObjectServiceFactory() .create(IUserInfoService.class); try { IUserInfoService iAddressService = (IUserInfoService) new XFireProxyFactory() .create(service, url); List list = (ArrayList) iAddressService .getAddressList(); System.out.println("一共多少条数据:" + list.size()); for (Iterator iter = list.iterator(); iter.hasNext();) { UserInfo a = iter.next(); System.out.println(a); } } catch (MalformedURLException e) { e.printStackTrace(); } } public static void setServiceList() { Service service = new ObjectServiceFactory() .create(IUserInfoService.class); try { IUserInfoService iAddressService = (IUserInfoService) new XFireProxyFactory() .create(service, url); List listAdd = new ArrayList(); UserInfo address = new UserInfo(); address.setIdentifier(1); address.setCountry("中國"); address.setProivice("廣東省"); address.setCity("陽江"); address.setAddress("廣東陽春"); address.setPostCode("1111111"); address.setExist(false); address.setArrary(new String[] { "22", "23", "24" }); listAdd.add(address); address.setIdentifier(2); address.setCountry("中國"); address.setProivice("廣東省"); address.setCity("陽江"); address.setAddress(