`
liugang594
  • 浏览: 978054 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JAX-WS 学习三:进阶一(wsimport和TCP/IP monitor)

 
阅读更多

前两节中简单的介绍了一下基本的JAX-WS API的使用,这一节更进一步的介绍一些其他的内容

 

一、wsimport工具的使用

 

在第二节中(http://liugang594.iteye.com/blog/1343608),可以看到要手动创建一个client端进行一次正确的调用,需要关注的东西还是挺多的,尤其是定义一个符合格式的方法定义在参数相当复杂的情况下是相当不容易的。

 

这里JDK中提供了一个 wsimport 的工具,路径为 “JDK_PATH/bin”,可以相当方便的用来创建相应wsdl的Service类文件和Port类文件。

 

要使用wsimport,命令行如下:

wsimport -keep http://localhost:9999/ws/hello?wsdl

 

然后就会根据这个wsdl生成几个相应的类文件,例如使用第一节的例子会生成8个类文件

 

其中主要的是一个Service类 CalculatorImplService.java 和 一个EndpointInterface类 Calculator。

 

有了这些类以后,就可以很简单的实现Client端了,例如:

		CalculatorImplService service = new CalculatorImplService();
		Calculator calculator = service.getPortName();
		System.out.println(calculator.add(1, 2));

 

如此方便,不能自己。

 

二、查看来往的Soap消息

 

由于所有的消息都是通过类的方法被Java在后台封装了,所以一大不利处就是没法查看具体发送的Soap消息和返回的结果。

 

所以需要一个工具用来查看与特定的Server和Port上消息的交互。有一大堆工具可以做这个,这里我介绍一下Eclipse里的TCP/IP Monitor工具如何来做。

 

打开 "Window->Preferences->Run/Debug->TCP/IP Monitor"菜单就可以看到TCP/IP Monitor的配置页了,如下。(如果你的eclipse里没有这一项,那可能是你的版本比较低,建议更新一个版本试试,我的版本是3.6.2)

 

点击“add”按钮,就可以新建一个Monitor,配置说明如下:

  1. Local monitoring port:定义用来中转的本地端口。例如你本来想访问的时候本地的8000端口,你在此处定义的是8001端口,那你的访问端口也需要改成8001,然后由monitor把你的请求进行转发。
  2. Host name:你要监视的与本地通信的主机地址
  3. Port:你要监视的与本地通信的主机端口
  4. Type:通信方式,有HTTP和TCP/IP两个选项
  5. Timeout:超时设置

定义完以后,选中这个配置,点击"start",监视器即起用。

 

然后通过"Window->Show View->Other->Debug->TCP/IP Monitor",打开监视视图:

 

即可。

 

例如我有一个wsdl的定义地址为:http://localhost:8086/calculator?wsdl

 

本来我的Client端的实现代码应该是:

 

		 URL url = new URL("http://localhost:8086/calculator?wsdl");
		 QName qName = new QName("http://www.liulutu.com/calculator/",
		 "CalculatorImplService");
		 Service service = Service.create(url, qName);
		 Calculator port = service.getPort(Calculator.class);
		 System.out.println(port.add(1, 2));

 一旦我使用了诸如上面的监视器,并且想监视这个WebService的请求成响应,那么这里url的端口就需要由8086改成8087:

		 URL url = new URL("http://localhost:8087/calculator?wsdl");
		 QName qName = new QName("http://www.liulutu.com/calculator/",
		 "CalculatorImplService");
		 Service service = Service.create(url, qName);
		 Calculator port = service.getPort(Calculator.class);
		 System.out.println(port.add(1, 2));

 通过监视器来进行中间的转发,即可观察到来往的消息交互:

  • 大小: 1.9 KB
  • 大小: 30.9 KB
  • 大小: 13.6 KB
  • 大小: 21.3 KB
分享到:
评论

相关推荐

    jax-ws webservice demo

    基于jax-ws 实现的web service client和server端的demo程序。 注:如果使用的是 myeclipse 时 server 部署到tomcat 启动的时候会报错 解决办法:找到myeclipse安装目录下的 plugins 目录里 查找 webservices-rt.jar,...

    JAX-WS自学笔记

    本人自学JAX-WS笔记和简单例子,文档标题结构如下: JAX-WS使用教程 1、JAX-WS概述 2、创建Web Service 2.1 从java开始 2.1.1 运行wsgen 2.1.2 生成的WSDL和XSD 2.1.3 目录结构 2.2 从WSDL开始 2.2.1 ...

    JAX-WS 2.2 RI所有相关jar包

    JAX-WS 2.2 RI 所包含的JAR包集合,包含25个JAR包,列表如下: FastInoset.jar gmbal-api-only.jar ha-api.jar javax.annotation.jar javax.mail_1.4.jar jaxb-api.jar jaxb-impl.jar jaxb-xjc.jar jaxws-api...

    基于JAX-WS2.2开发WebService所需jar资源包

    使用 Eclipse JavaEE 开发 WebService 时,若选择手动创建原生的JAX-WS服务,需要导入此jar资源(教程详见我的博文https://blog.csdn.net/weixin_50604409/article/details/116399530)。 如果您同时装有 IntelliJ ...

    Jax-ws所需要的JAR包

    亲测可用,Jax-ws所需要的JAR包,拷贝到tomcat安装路径的lib里,实现了webservice发布到tomcat,赞!

    MyEclipse8_0中使用 JAX-WS 部署 WebService 实例

    MyEclipse8_0中使用 JAX-WS 部署 WebService 实例 - 外衣 - 博客频道 - CSDN_NET.mht

    metro-jax-ws-master

    The Java API for XML Web Services (JAX-WS) is a Java programming language API for creating web services, particularly SOAP services. JAX-WS is one of the Java XML programming APIs. It's a part of the ...

    JAX-WS_WebService.rar

    JAX-WS方式开发和部署webservice应用,JAX-WS方式开发和部署webservice应用,JAX-WS方式开发和部署webservice应用,JAX-WS方式开发和部署webservice应用,JAX-WS方式开发和部署webservice应用

    webService部署tomcat需要的jax-ws jar包

    webService部署tomcat需要的jax-ws 的完整jar包

    JAX-WS2.0 API

    JAX-WS2.0 API

    Jax-WS 简单实例

    Jax-WS的简单实例 Jax-WS的简单实例

    jax-ws webservice简单demo

    jax-ws webservice完整demo,包含所有jax-ws 2.2jar包。

    jax-rs jax-ws所需包,亲测可用

    javax.xml.ws.Service 报错需要的包,亲测可以用,直接下载在ide里buildpath一下就可以,四个jar包 ,整合了其他的jar所以配置简单

    JAX-WS SOAP header设值

    NULL 博文链接:https://iamliming.iteye.com/blog/1399257

    使用JAX-WS(JWS)发布WebService

    使用JAX-WS(JWS)发布WebService 使用myeclipse开发java的webservice的两种方式 方式一: (此方式只能作为调试,有以下bug:jdk1.6u17?以下编译器不支持以Endpoint.publish方式发布document方式的soap,必须在...

    JAX-WS 2.2 完整jar包

    JAX-WS 2.2 RI 所包含的JAR包集合,包含25个JAR包,列表如下: FastInoset.jar gmbal-api-only.jar ha-api.jar javax.annotation.jar javax.mail_1.4.jar jaxb-api.jar jaxb-impl.jar jaxb-xjc.jar jaxws-api...

    JAX-WS学习(二)、服务端返回一个List集合

    NULL 博文链接:https://luan.iteye.com/blog/1824843

    JAX-WS开发的文件生成与部署相关全视频过程

    如果基于一个JAX-WS进行WebService开发,有很多教程,但是具体怎么更自动地生成一些文件,实现客户端与服务端的交互,都讲得不大清楚,为了让大家更方便地部署,我将服务端、客户端文件的生成与部署全过程以及测试...

    JAX-WS实现WebService.zip

    欢迎下载JAX-WS实现WebService.zip。本压缩文件介绍了如何使用JAX-WS技术实现WebService 参考博客:http://blog.csdn.net/gaohuanjie/article/details/50523517

    JAX-WS的lib、src和docs

    JAX-WS不是一个孤立的框架,它依赖于众多其他的规范,本质上它由以下几部分组成 1.用来开发Web Services的Java API 2.用来处理Marshal/Unmarshal的XML Binding机制,JAX-WS2.0用JAXB2来处理Java Object与XML之间的映射,...

Global site tag (gtag.js) - Google Analytics