JAX-WS集成Web工程的Web Service的客户端异步调用

这篇文章是在我的上一篇文章:“ JAX-WS集成Web工程的Web Service的创建和发布简单入门(1)”的基础上的,也就是服务端的创建和发布。

客户端访问服务端需要向服务端发消息,有同步和异步两种:

同步调用:即一来一回的,Client端request到Server端,Server端立刻回一个response。

异步调用:就是客户端调用一次服务端后,服务端处理事务并不是即时返回的,比如说传一个600MB文件给服务端,服务端在处理接收和解析文件时,客户端不会马上得到一个响应,它会等待一段时间,等服务器处理完后,再通知客户端“我处理完了”。

现在来完成客户端的异步调用。

1、为了简单,也只创建Java Project就可以了,比如我这里新建了一个叫Client的Java Project作为客户端。

2、在客户端工程根目录下创建一个xml配置文件,比如:binding.xml,内容如下:

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2.   
  3. <bindings xmlns:xsd="http://www.w3.org/2001/XMLSchema"  
  4.     xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"   
  5.     wsdlLocation="http://10.225.112.86:8888/myWS2/HelloService?wsdl"  
  6.     xmlns="http://java.sun.com/xml/ns/jaxws">  
  7.       
  8.     <bindings node="wsdl:definitions">  
  9.         <enableAsyncMapping>true</enableAsyncMapping>  
  10.     </bindings>  
  11. </bindings>  

3、DOS进入客户端工程根目录,运行以下命令:

 表示客户端辅助的代码成功了,不过貌似好多啊,刷一下src目录就可以看到了。

4、编写一个Java类来测试异步调用:

  1. package leon.test;  
  2.   
  3. import javax.xml.ws.Response;  
  4.   
  5. import leon.ws.Hello;  
  6. import leon.ws.HelloService;  
  7. import leon.ws.SayHelloResponse;  
  8.   
  9. public class TestHelloAsyn {  
  10.     public static void main(String[] args) {  
  11.         HelloService service = new HelloService();  
  12.         Hello port = service.getHelloPort();  
  13.         Response<SayHelloResponse> resp = port.sayHelloAsync("LeonSU");  
  14.         while (!resp.isDone()) {  
  15.             System.out.println("not done. Hold on please...");  
  16.         }  
  17.         try {  
  18.             SayHelloResponse callNameResponse = resp.get();  
  19.             String message = callNameResponse.getReturn();  
  20.             System.out.println(message);  
  21.         } catch (Exception e) {  
  22.             e.printStackTrace();  
  23.         }  
  24.     }  
  25. }  

客户端也创建好了。不过先不急着运行这个类哈,会报错的。看看服务端,服务端需要引入两个jar包:saaj-api.jar,saaj-impl.jar,如果没有的话赶紧引入吧。然后运行服务端。接着才可运行客户端的这个TestHelloAsyn.java:

OK,成功了。


转载:http://blog.csdn.net/leon709/article/details/7107996
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值