`
saybody
  • 浏览: 902895 次
  • 性别: Icon_minigender_2
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

使用XFire+Spring构建Web Service(二)

阅读更多
《使用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的内容,代码如下:

packagewebservice.example2;

importjava.util.Date;

/***//**
*用户对象.
*
@author<ahref="mailto:xiexingxing1121@126.com">AmigoXie</a>
*@version1.0
*Creationdate:2007-9-28-上午10:42:44
*/

publicclassUser
implementsjava.io.Serializable{
privatestaticfinallongserialVersionUID
=1L;

/***//**用户名*/
privateStringloginName;

/***//**用户密码*/
privateStringpassword;

/***//**手机号*/
privateStringmobile;

/***//**创建时间*/
privateDatecreateTime;

publicDategetCreateTime(){
returncreateTime;
}


publicvoidsetCreateTime(DatecreateTime){
this.createTime=createTime;
}


publicStringgetLoginName(){
returnloginName;
}


publicvoidsetLoginName(StringloginName){
this.loginName=loginName;
}


publicStringgetMobile(){
returnmobile;
}


publicvoidsetMobile(Stringmobile){
this.mobile=mobile;

}


publicStringgetPassword(){
returnpassword;
}


publicvoidsetPassword(Stringpassword){
this.password=password;
}


publicStringtoString(){
StringBuffersb
=newStringBuffer();
sb.append(
"loginName="+this.loginName);
sb.append(
"|password="+this.password);
sb.append(
"|mobile="+this.mobile);
sb.append(
"|createDate="+this.createTime);
returnsb.toString();
}

}


三. 用户业务类UserService.java及其实现UserServiceImpl.java

下面让我们来看看本例的业务逻辑接口类UserService.java的内容:
它的实现类UserServiceImpl.java的内容如下:注意:getUserList()方法返回的List中需要采用泛型,不然会部署失败。

packagewebservice.example2;

importjava.util.List;

/***//**
*用户业务类.
*
@author<ahref="mailto:xiexingxing1121@126.com">AmigoXie</a>
*@version1.0
*Creationdate:2007-9-28-上午10:37:09
*/

publicinterfaceUserService
{
/***//**
*获取用户对象.
*@paramloginName用户名
*@return返回用户对象
*/

publicUsergetUser(StringloginName);

/***//**
*创建用户.
*@paramuser用户对象
*@return返回创建的对象的toString()方法返回的内容
*/

publicStringcreateUser(Useruser);

/***//**
*获取用户信息数组.
*@return返回用户信息数组
*/

publicUser[]getUserArray();

/***//**
*获得用户信息列表.
*@return返回用户信息列表
*
@author<ahref="mailto:xiexingxing1121@126.com">AmigoXie</a>
*Creationdate:2007-9-28-下午12:55:37
*/

publicList<User>getUserList();
}


packagewebservice.example2;

importjava.util.ArrayList;
importjava.util.Date;
importjava.util.List;

/***//**
*用户业务实现类.
*
@author<ahref="mailto:xiexingxing1121@126.com">AmigoXie</a>
*@version1.0
*Creationdate:2007-9-28-上午10:54:11
*/

publicclassUserServiceImpl
implementsUserService{
/***//**
*获取用户对象.
*@paramloginName用户名
*@return返回用户对象
*/

publicUsergetUser(StringloginName){
Useruser
=newUser();
user.setLoginName(loginName);
user.setPassword(
"12345678");
user.setMobile(
"13812345678");
user.setCreateTime(
newDate());
returnuser;
}


/***//**
*创建用户.
*@paramuser用户对象
*@return返回创建的对象的toString()方法返回的内容
*/

publicStringcreateUser(Useruser){
user.setCreateTime(
newDate());
returnuser.toString();
}


/***//**
*获取用户信息数组.
*@return返回用户信息数组
*/

publicUser[]getUserArray(){
User[]userList
=newUser[4];
userList[
0]=getUser("阿蜜果");
userList[
1]=getUser("sterning");
userList[
2]=getUser("娟子");
userList[
3]=getUser("老肖");
returnuserList;
}


/***//**
*获得用户信息列表.
*@return返回用户信息列表
*
@author<ahref="mailto:xiexingxing1121@126.com">AmigoXie</a>
*Creationdate:2007-9-28-下午12:55:37
*/

publicList<User>getUserList(){
List
<User>userList=newArrayList<User>();
userList.add(getUser(
"阿蜜果"));
userList.add(getUser(
"sterning"));
userList.add(getUser(
"娟子"));
userList.add(getUser(
"老肖"));
returnuserList;
}

}

到此为止,我们的业务已经完成,剩下的工作只是修改配置文件和编写测试类来进行测试。让我们继续往下走吧。

四. 配置文件applicationContext.xmlxfire-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的定义: 我们的Web Service已经开发完成,启动本项目后,可通过浏览器访问:http://localhost:8080/webservice_helloworld/UserService.ws?wsdl,我们可以在浏览器中看到该例的WSDL信息。

<beanid="UserService"parent="baseWebService">
<!--业务服务bean-->
<propertyname="serviceBean"ref="UserBean"/>
<!--业务服务bean的窄接口类-->
<propertyname="serviceClass"value="webservice.example2.UserService"/>
</bean>

五. Web Service测试

在本小节我们将对上述完成的Web Service进行测试,首先我们在src目录下的client.xml文件增加如下内容: 接着我们在src/test目录下建立UserServiceClientTest.java类,编写测试代码如下:
大家可以运行该类,来查看运行效果。
运行有问题的人可在此留下你们的email给我,我将这个工程发给你们。

<!--获取用户信息的例子-->
<beanid="testUserWebService"class="org.codehaus.xfire.spring.remoting.XFireClientFactoryBean">
<propertyname="serviceClass"><value>webservice.example2.UserService</value>
</property>
<propertyname="wsdlDocumentUrl">
<value>http://localhost:8080/webservice_helloworld/UserService.ws?wsdl</value>
</property>
</bean>

相关推荐

    使用XFire+Spring构建Web Service

    【使用XFire+Spring构建Web Service】是一种在Java平台上开发Web服务的高效方法。XFire作为新一代的Web服务框架,与Axis2并列,因其简洁的API和对Web服务标准的良好支持而受到开发者欢迎。XFire特别强调与Spring框架...

    使用XFire+Spring构建Web Service步骤以及源代码.rar

    总之,使用XFire和Spring构建Web服务允许你利用Spring的灵活性和XFire的效率来创建高性能的服务。这种方式使得服务的开发、管理和维护变得更加简单,尤其适合大型企业级应用。通过实践这个教程,你不仅可以学习到Web...

    使用XFire+Spring构建Web Service步骤

    总结,使用XFire和Spring构建Web Service,可以利用Spring的IoC和AOP特性简化服务的创建和管理,同时XFire提供了高效且灵活的Web Service实现。通过以上步骤,开发者可以快速地搭建自己的Web Service,并与其他系统...

    使用XFire+Spring构建Web Service(二).doc

    总结来说,这个例子不仅展示了如何使用XFire+Spring构建Web服务,还涵盖了处理复杂数据类型、对象序列化、服务发布、异常处理等多个关键点。通过这样的实践,开发者可以更好地理解Web服务的实现原理,并能够灵活地...

    XFire+Spring发布Web Service(一)

    在本教程中,我们将深入探讨如何使用XFire和Spring框架来发布Web服务。XFire是Apache CXF项目的一部分,它是一个强大的Java Web服务框架,而Spring则是Java开发中的一个核心框架,提供了依赖注入、AOP(面向切面编程...

    xfire+spring开发webservice

    Spring框架是Java企业级应用开发的首选工具,而XFire则是一个早期的、基于Apache CXF的用于构建和消费Web服务的库。本篇文章将深入探讨如何使用XFire与Spring框架一起开发Web服务。 首先,我们需要理解XFire的基本...

    使用XFire+Spring构建WebService

    总之,使用XFire和Spring构建WebService是一种强大的组合,它允许开发者利用Spring的强大功能和XFire的易用性,快速、高效地开发和部署Web服务。理解并掌握这一技术将对提升开发者在Web服务领域的专业技能大有裨益。

    XFire+Spring webwervice

    【XFire+Spring Web Service】是一个结合了XFire和Spring框架的解决方案,用于构建高效、易用的Web服务。...对于需要快速构建Web服务并期望与Spring生态系统紧密集成的开发者来说,这是一个理想的解决方案。

    xfire+spring+webservice例子

    2. `使用XFire+Spring构建Web Service(一)——helloWorld篇 - 阿蜜果 - BlogJava.mht`:这是一个关于Web服务创建的教程文档,可能详细介绍了如何使用XFire和Spring创建一个简单的"Hello World"服务。 3. `....

    xfire+spring+hibernate的一种整合方式

    6. **适用场景**:这种整合方式适用于需要构建Web服务并依赖于数据库操作的Java应用,特别是那些希望以面向对象的方式编写业务逻辑,同时需要灵活发布和调用Web服务的项目。 7. **注意事项**:尽管这种整合方式在...

Global site tag (gtag.js) - Google Analytics