原创不易,转载请注明出处:XFire+Spring整合构建Web Service的框架搭建实例代码下载
代码下载地址:http://www.zuidaima.com/share/1751866791365632.htm
在《使用XFire+Spring构建Web Service(一)——helloWorld篇》 文中我们通过一个简单的XFire+Spring 实例,该实例的sayHelloWorld() 方法通过传入一个字符串参数来返回一个字符串,而实际的应用过程中,遇到的情况比这个要复杂得多,例如,传入参数是对象、返回自定义对象、返回数组、返回列表。下面让我们在此文中对XFire+Spring 进行更深层的探讨吧。
一. 本例概述
在本例中,我们将在业务逻辑类是一个用户的业务逻辑类,包括创建用户、获取单个用户、获取用户数组、获取用户列表四个方法,因该文讲的是XFire+Spring构建webservice,所以在该例中我们并不涉及具体的数据库操作,而只是提供模拟实现。方法描述如下:
1) 创建用户方法:createUser(User user)
通过传入User对象作为参数来才创建用户;
2) 通过用户名获取用户信息方法:getUser(String loginName)
根据用户名获取某用户对象,该方法返回的是一个User对象;
3) 返回所有用户的数组方法:getUserArray()
返回为User数组;
4) 返回所有用户的列表的方法:getUserList()
返回为List对象,放入的对象为User类型。
二. 数据对象User.java
在上篇的例子中,src/webservice目录下新建example2目录,并在example2目录下建立User.java文件,下面看看数据对象User.java的内容,代码如下:
package webservice.example2; import java.util.Date; /** */ /** *用户对象. *@author<a href="mailto:xiexingxing1121@126.com">AmigoXie</a> *@version1.0 *Creationdate:2007-9-28-上午10:42:44 */ publicclass User implements java.io.Serializable { privatestaticfinallongserialVersionUID=1L; /** *//**用户名*/ private String loginName; /** *//**用户密码*/ private String password; /** *//**手机号*/ private String mobile; /** *//**创建时间*/ private Date createTime; public Date getCreateTime() { return createTime; } public void setCreateTime(Date createTime) { this.createTime=createTime; } public String getLoginName() { return loginName; } public void setLoginName(String loginName) { this.loginName=loginName; } public String getMobile() { return mobile; } public void setMobile(String mobile) { this.mobile=mobile; } public String getPassword() { return password; } public void setPassword(String password) { this.password=password; } public String toString() { StringBuffer sb=new StringBuffer(); sb.append("loginName="+ this.loginName); sb.append("|password="+ this.password); sb.append("|mobile="+ this.mobile); sb.append("|createDate="+ this.createTime); return sb.toString(); } }
三. 用户业务类UserService.java及其实现UserServiceImpl.java
下面让我们来看看本例的业务逻辑接口类UserService.java的内容:
package webservice.example2; import java.util.List; /** */ /** *用户业务类. *@author<a href="mailto:xiexingxing1121@126.com">AmigoXie</a> *@version1.0 *Creationdate:2007-9-28-上午10:37:09 */ publicinterface UserService { /** *//** *获取用户对象. *@paramloginName用户名 *@return返回用户对象 */ public User getUser(String loginName); /** *//** *创建用户. *@paramuser用户对象 *@return返回创建的对象的toString()方法返回的内容 */ public String createUser(User user); /** *//** *获取用户信息数组. *@return返回用户信息数组 */ public User[] getUserArray(); /** *//** *获得用户信息列表. *@return返回用户信息列表 *@author<a href="mailto:xiexingxing1121@126.com">AmigoXie</a> *Creationdate:2007-9-28-下午12:55:37 */ public List<User> getUserList(); }
它的实现类UserServiceImpl.java的内容如下:
package webservice.example2; import java.util.ArrayList; import java.util.Date; import java.util.List; /** */ /** *用户业务实现类. *@author<a href="mailto:xiexingxing1121@126.com">AmigoXie</a> *@version1.0 *Creationdate:2007-9-28-上午10:54:11 */ publicclass UserServiceImpl implements UserService ]=getUser("老肖"); return userList; } /** *//** *获得用户信息列表. *@return返回用户信息列表 *@author<a href="mailto:xiexingxing1121@126.com">AmigoXie</a> *Creationdate:2007-9-28-下午12:55:37 */ public List<User> getUserList() { List<User> userList=new ArrayList<User>(); userList.add(getUser("阿蜜果")); userList.add(getUser("sterning")); userList.add(getUser("娟子")); userList.add(getUser("老肖")); return userList; } }
注意:getUserList()方法返回的List中需要采用泛型,不然会部署失败。
到此为止,我们的业务已经完成,剩下的工作只是修改配置文件和编写测试类来进行测试。让我们继续往下走吧。
四. 配置文件applicationContext.xml和xfire-servlet.xml的修改
在本小节中,我们需要修改配置文件。首先在applicationContext.xml文件中添加用户逻辑bean的定义,添加的代码如下:
<bean id="UserBean" class="webservice.example2.UserServiceImpl"/>
接下来我们还需要修改xfire-servlet.xml文件来暴露我们的Web Service,修改后的该文件内容如下所示:
<entry key="/UserService.ws">
<ref bean="UserService" />
</entry>
并添加如下bean的定义:
<bean id="UserService" parent="baseWebService"> <!-- 业务服务bean --> <property name="serviceBean" ref="UserBean" /> <!-- 业务服务bean的窄接口类 --> <property name="serviceClass" value="webservice.example2.UserService" /> </bean>
我们的Web Service已经开发完成,启动本项目后,可通过浏览器访问:http://localhost:8080/webservice_helloworld/UserService.ws?wsdl,我们可以在浏览器中看到该例的WSDL信息。
五. Web Service测试
在本小节我们将对上述完成的Web Service进行测试,首先我们在src目录下的client.xml文件增加如下内容:
<!-- 获取用户信息的例子 --> <bean id="testUserWebService" class="org.codehaus.xfire.spring.remoting.XFireClientFactoryBean"> <property name="serviceClass"> <value> webservice.example2.UserService </value> </property> <property name="wsdlDocumentUrl"> <value> http://localhost:8080/webservice_helloworld/UserService.ws?wsdl </value> </property> </bean>
接着我们在src/test目录下建立UserServiceClientTest.java类,编写测试代码如下:
package test; import java.util.List; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import webservice.example2.User; import webservice.example2.UserService; /** */ /** * 用户业务测试类. * @author <a href="mailto:xiexingxing1121@126.com">AmigoXie</a> * @version 1.0 * Creation date: 2007-9-28 - 下午12:03:06 */ public class UserServiceClientTest ; i <userList.size(); i++) { System.out.println("i="+ i + "|" + userList.get(i)); } } }
大家可以运行该类,来查看运行效果。
运行有问题的人可在此留下你们的email给我,我将这个工程发给你们。
相关推荐
本教程将详细介绍如何结合XFire和Spring来构建Web服务,并提供相关的源代码供参考。 首先,我们要理解XFire和Spring的基本概念。XFire(后被Apache CXF合并)是一个用于创建和消费SOAP Web服务的库,它支持WS-I基本...
在提供的压缩包文件"xfire+spring"中,可能包含了相关的示例代码、配置文件或者教程文档,帮助开发者理解并实践这一整合过程。通过学习这些资源,你可以深入理解如何将这两个强大的工具结合起来,构建出既高效又安全...
在实际操作中,构建XFire+Spring Web Service的步骤通常包括: 1. **创建服务接口**:定义一个Java接口,标记为@WebService。 2. **实现服务**:创建接口的实现类,并使用Spring注解如@Service来管理。 3. **配置...
至此,一个简单的XFire+Spring Web Service就已经构建完成。客户端可以通过调用WSDL中定义的端点地址来访问这个服务,进行“Hello, World!”的交互。 总结,使用XFire和Spring构建Web Service,可以利用Spring的IoC...
总结来说,这个例子不仅展示了如何使用XFire+Spring构建Web服务,还涵盖了处理复杂数据类型、对象序列化、服务发布、异常处理等多个关键点。通过这样的实践,开发者可以更好地理解Web服务的实现原理,并能够灵活地...
8. **测试和调试**:整合后的Web服务可以通过Spring的测试框架进行单元测试,同时XFire提供了多种工具和插件,如XFire Studio,方便开发者进行调试和性能分析。 通过以上知识点的讲解,我们可以看出XFire与Spring的...
在提供的文档《xfire+spring2_5开发webservice接口的两种方式.mht》中,详细讲解了这两种方法的实现步骤、示例代码和注意事项。读者可以通过阅读该文档,了解如何在Spring 2.5版本下结合XFire创建Web服务。 另一份...
标题中的“xfire+spring+webservice+client”是一个关于集成XFire、Spring框架和Web服务客户端的专题,这涉及到Java开发中的一项重要技术——Web服务的消费与提供。在这个主题下,我们将深入探讨以下几个核心知识点...
标题中的“xfire+spring+maven构建webservice服务器和客户端”揭示了本教程将围绕三个主要技术进行讨论:XFire、Spring和Maven。这三者都是Java开发中不可或缺的工具,尤其在构建Web服务方面。 XFire是早期的一个...
标题中的“XFire+Spring整合的依赖包”意味着这是一个集合,包含了将XFire集成到Spring应用中所需的所有依赖库。这样的整合使得开发者可以利用Spring的强大功能来管理服务的生命周期,并结合XFire的高效Web服务处理...
在"XFire+Spring发布Web Service(一)"这个主题中,我们主要关注的是如何设置客户端来消费发布的Web服务。客户端代码是与服务端进行交互的部分,通常包括调用服务接口、处理响应等操作。 首先,你需要在你的项目中...