XFire+Spring整合构建Web Service的框架搭建实例代码下载

原创不易,转载请注明出处: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:[email protected]">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:[email protected]">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:[email protected]">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:[email protected]">AmigoXie</a>
 *@version1.0
 *Creationdate:2007-9-28-上午10:54:11
 */
publicclass UserServiceImpl implements UserService ]=getUser("老肖");
 return userList;
 }

 /** *//**
 *获得用户信息列表.
 *@return返回用户信息列表
 *@author<a href="mailto:[email protected]">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:[email protected]">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给我,我将这个工程发给你们。

你可能感兴趣的:(spring,xfire,整合,e框架搭建,Web Servic)