原文: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;
/** */ /**
*用户对象.
*@authorAmigoXie
*@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;
/** */ /**
*用户业务类.
*@authorAmigoXie
*@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返回用户信息列表
*@authorAmigoXie
*Creationdate:2007-9-28-下午12:55:37
*/
public List getUserList();
}
它的实现类UserServiceImpl.java的内容如下:
package webservice.example2;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/** */ /**
*用户业务实现类.
*@authorAmigoXie
*@version1.0
*Creationdate:2007-9-28-上午10:54:11
*/
publicclass UserServiceImpl implements UserService ]=getUser("老肖");
return userList;
}
/** *//**
*获得用户信息列表.
*@return返回用户信息列表
*@authorAmigoXie
*Creationdate:2007-9-28-下午12:55:37
*/
public List getUserList() {
List userList=new ArrayList();
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的定义,添加的代码如下:
接下来我们还需要修改xfire-servlet.xml文件来暴露我们的Web Service,修改后的该文件内容如下所示:
并添加如下bean的定义:
我们的Web Service已经开发完成,启动本项目后,可通过浏览器访问:http://localhost:8080/webservice_helloworld/UserService.ws?wsdl,我们可以在浏览器中看到该例的WSDL信息。
五. Web Service测试
在本小节我们将对上述完成的Web Service进行测试,首先我们在src目录下的client.xml文件增加如下内容:
webservice.example2.UserService
http://localhost:8080/webservice_helloworld/UserService.ws?wsdl
接着我们在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 AmigoXie
* @version 1.0
* Creation date: 2007-9-28 - 下午12:03:06
*/
public class UserServiceClientTest ; i
大家可以运行该类,来查看运行效果。
运行有问题的人可在此留下你们的email给我,我将这个工程发给你们。