在MyEclipse中使用XFire开发WebService

在MyEclipse中使用XFire开发WebService

客户端通过web service调用服务器端的sayHello方法开步骤:
1 服务器端
1.1 创建Web Proejct(HelloWS)
 
1.2 添加Xfire支持 

添加完xfire之后的工程,如图:
 
1.3 新建web service类及方法
新建com.newer.service.HelloService类,同时在该类中添加sayHello(String name)方法
1.4 发布Web Services
双击打开WebServices/services.xml
在outline视图中右击,选择New Web Service
 
 
1.5 发布工程,启动Tomcat
1.6 获取WSDL
打开浏览器,在地址栏中输入http://localhost:8080/工程名/services/
 
点击HelloService[wsdl]链接,获取WSDL
 
2 客户端
2.1 新建客户端工程
新建名为wsClient 的java Project
2.2 生成Web Service 客户端代码
右击工程->New->Other->MyEclipse->Web-services->Web Service Client
 
选择WSDL URL 在地址栏中输入wsdl URL->Next->Finish

生成的代码的工程,如图
 
2.3 客户端调用
打开HelloServiceClient.java,将其中的main方法改为
public static void main(String[] args) {
HelloServiceClient client = new HelloServiceClient();
HelloServicePortType service = client.getHelloServiceHttpPort();
System.out.println(service.sayHello("world"));
}
 
3 在xfire中传递自定义对象
如果在服务器端定义如下方法
public boolean addOrder(Order order){
System.out.println("id:"+order.getId());
System.out.println("userName:"+order.getUserName());
System.out.println("price:"+order.getPrice());
return orderDao.addOrder(order);
}
生成的客户端代码如下
 
在客户端调用时Order对象不能直接new ,部分字段不能直接new
即不能Order order = new Order()
  Order.setId(“2008-1”)
需要通过ObjectFactory创建对象和属性
public static void main(String[] args) {
  FoodServiceClient client = new FoodServiceClient();
  FoodServicePortType service = client.getFoodServiceHttpPort();
  //新建对象工厂
  com.newer.bean.ObjectFactory objFactory = new com.newer.bean.ObjectFactory();
  //通过对象工厂创建Order对象
  Order order = objFactory.createOrder();
  //通过对象工厂创建Order的id属性
  order.setId(objFactory.createOrderId("2008-01"));
  order.setPrice(12f);
  //通过对象工厂创建Order的userName属性
order.setUserName(objFactory.createOrderUserName("yelong"));
   
  boolean result = service.addOrder(order);
  System.out.println(result);
  }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值