首先,我们在eclipse中建立一个WebService工程作为服务端,并编写如下代码:
IHelloService.java 服务接口,有一个方法,参数和返回值均为复杂类型User
package test;
public interface IHelloService ...{
public User getUser(User user);
}
User.java
注意,这个javabean里必须要有一个默认没有参数的构造方法,否则在进行aegis绑定会有不能实例化user对象的异常
package test;
import java.io.Serializable;
public class User...{
private String username;
private String password;
public User()...{
}
public User(String username, String password) ...{
super();
this.username = username;
this.password = password;
}
public String getPassword() ...{
return password;
}
public void setPassword(String password) ...{
this.password = password;
}
public String getUsername() ...{
return username;
}
public void setUsername(String username) ...{
this.username = username;
}
}
HelloServiceImpl.java
方法实现是传进来一个user对象,把这个对象的username,password变成我们设置的数值,然后返回这个对象
package test;
public class HelloServiceImpl implements IHelloService ...{
public void print() ...{
System.out.println("action");
}
public User getUser(User user) ...{
user.setUsername("new name");
user.setPassword("new password");
return user;
}
}
IHelloService.aegis.xml 为复杂参数和返回类型绑定,和IHelloService在一个包下
<?xml version="1.0" encoding="UTF-8"?>
<mappings>
<mapping>
<method name="getUser">
<parameter index="0" componentType="test.User"/>
<return-type componentType="test.User"/>
</method>
</mapping>
</mappings>
services.xml xFire发布文件
<?xml version="1.0" encoding="UTF-8"?>
<beans>
<service xmlns="http://xfire.codehaus.org/config/1.0">
<name>HelloService</name>
<namespace>http://test/HelloService</namespace>
<serviceClass>test.IHelloService</serviceClass>
<implementationClass>test.HelloServiceImpl</implementationClass>
</service>
</beans>
部署到tomcat中,在浏览器中运行http://localhost:8080/XFire/services/HelloService?wsdl
如果部署正确,讲出现XFire生成的wsdl文件
把IHelloService.java, IHelloService.aegis.xm,User.java打包成jar
下面,我们编写消费WS的客户端
新建一个java工程,把服务端的jar放到classpath中,当然,服务和客户端都要有XFire的类库
编写代码
package test;
import java.net.MalformedURLException;
import org.codehaus.xfire.client.XFireProxyFactory;
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.service.binding.ObjectServiceFactory;
import test.IHelloService;
import test.User;
public class Client ...{
/** *//**
* @param args
*/
public static void main(String[] args) ...{
User user=new User("2","2");
String serviceURL="http://localhost:8080/XFire/services/HelloService";
Service serviceModel = new ObjectServiceFactory().create(IHelloService.class,null,"http://test/HelloService",null);
XFireProxyFactory serviceFactory = new XFireProxyFactory();
IHelloService service = null;
try ...{
service = (IHelloService) serviceFactory.create(serviceModel, serviceURL);
user=service.getUser(user);
System.out.println(user.getUsername()+" - "+user.getPassword());
} catch (MalformedURLException e) ...{
e.printStackTrace();
}
}
}
在tomca安装目录下的bin中启动tomcat(注意不要使用eclipse环境中的启动插件,否则运行客户端时候会自动关掉服务)
运行结果:
new name - new password
真是我们想要的结果
分享到:
相关推荐
XFire-WebService 开发基础教程 有图有真相 XFire-WebService 开发基础教程XFire-WebService 开发基础教程
Myeclipse6.5下使用XFire开发WebService的完整入门例子 保你学会
提供xfire开发webservice接口的详细说明文档;同时给出通过xfire框架开发webservice服务端依赖的jar包。非常适合新手入门~
MyEclipse Web Services是建立在XFire Java SOAP框架和工具基础上的, XFire是一款开源的Java SOAP框架。它拥有一个轻量级的信息处理模块,通过STAX来与SOAP信息相结合。提供了一个工作在Web Services下的简单API,...
MyEclipse Web Services是建立在XFire Java SOAP框架和工具基础上的, XFire是一款开源的Java SOAP框架。它拥有一个轻量级的信息处理模块,通过STAX来与SOAP信息相结合。提供了一个工作在Web Services下的简单API,...
我整理了一下使用XFire1.2.6进行Web Service开发的思路,尝试完成了一个入门实例(完整的MyEclipse项目)。如果你正在学习Web Service或者对这个有兴趣,你可以下载该附件,导入MyEclipse中运行以查看示例效果。希望...
具体介绍参看 http://blog.csdn.net/stulingyu/archive/2010/07/09/5723097.aspx
关于WebService的使用方法的PPT,WebService&SOA&ESB入门介绍(手把手xfire开发WS入门实例)
WebService&SOA&ESB入门介绍(手把手xfire开发WS入门实例)
WebService\WebService&SOA&ESB入门介绍(手把手xfire开发WS入门实例).ppt
详解WebService的XFire框架,从简单入门到深入,循环渐进!
之前常常用CXF、Axis2、XFire等来开发结合Java语言来...但实际上Java6中已经支持用Java开发WebService应用了,而且很方便。这样就大大减少了项目安装部署的代价,因为选择开源的框架依赖大量第三方包,程序的尺寸倍增。
最简单的webservice的例子,包括服务端与客户端,有axis、xfire的两种方式的实现
MyEclipse Web Services是建立在XFire Java SOAP框架和工具基础上的, XFire是一款开源的Java SOAP框架。它拥有一个轻量级的信息处理模块,通过STAX来与SOAP信息相结合。提供了一个工作在Web Services下的简单API,...
WSDL 优先(WSDL First)来轻松地实现 Web Services 的发布和使用。Apache CXF已经是一个正式的Apache顶级项目。 Apache CXF 是一个开源的 Services 框架,CXF 帮助您利用 Frontend 编程 API 来构建和开发 Services ...
Web Service开发入门,通过Demo 来快速的学会Web Service的客户端、服务端的搭建,并附带详细描述了在Myeclipse 上如何安装XFire 的插件
详细介绍了如何用Xfire,CXF,Axis 开发Web 服务.Webservice 的底层原理并不在本文研究的范围内。所有示例都在 sample 目录里。这个学习手册的目的是只要仔细阅读本文档以及示例代码,任何对 webservice 没有基础的...
这是在xml的基础上开发的webService,运行成功,拥有查询与插入功能