`
zzc1684
  • 浏览: 1222708 次
  • 性别: 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,命令行如下:

Java代码 复制代码 收藏代码
  1. wsimport -keep http://localhost:9999/ws/hello?wsdl   

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

 

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

 

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

Java代码 复制代码 收藏代码
  1. CalculatorImplService service = new CalculatorImplService();   
  2. Calculator calculator = service.getPortName();   
  3. System.out.println(calculator.add(12));   

如此方便,不能自己。

 

二、查看来往的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端的实现代码应该是:

 

Java代码 复制代码 收藏代码
  1. URL url = new URL("http://localhost:8086/calculator?wsdl");   
  2. QName qName = new QName("http://www.liulutu.com/calculator/",   
  3. "CalculatorImplService");   
  4. Service service = Service.create(url, qName);   
  5. Calculator port = service.getPort(Calculator.class);   
  6. System.out.println(port.add(12));  

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

Java代码 复制代码 收藏代码
  1. URL url = new URL("http://localhost:8087/calculator?wsdl");   
  2. QName qName = new QName("http://www.liulutu.com/calculator/",   
  3. "CalculatorImplService");   
  4. Service service = Service.create(url, qName);   
  5. Calculator port = service.getPort(Calculator.class);   
  6. System.out.println(port.add(12));  

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

分享到:
评论

相关推荐

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

    标题"jax-rs jax-ws所需包,亲测可用"表明这个压缩包包含了用于开发Java RESTful Web服务(JAX-RS)和Java SOAP Web服务(JAX-WS)所需的库文件。这些库是Java应用程序进行Web服务交互的核心组件,确保了对HTTP协议...

    Jax-ws所需要的JAR包

    Java API for XML Web Services(JAX-WS)是Java平台上用于构建和消费Web服务的标准API。它简化了创建和使用Web服务的过程,使得开发者能够通过SOAP消息与远程服务进行交互。JAX-WS允许开发者将服务接口直接映射到...

    jax-ws api jar包

    JAX-WS(Java API for XML Web Services)是Java平台标准版(Java SE)和企业版(Java EE)的一部分,它为创建、部署和消费基于SOAP(Simple Object Access Protocol)的Web服务提供了全面的支持。JAX-WS允许开发者...

    JAX-WS2.0 API

    JAX-WS(Java API for XML Web Services)2.0 API 是Java平台上的一个标准接口,用于创建和消费Web服务。它提供了一种简单、类型安全且与平台无关的方式来实现基于SOAP(Simple Object Access Protocol)的Web服务。...

    如何基于JAX-WS开发一个WebService实例

    JAX-WS(Java API for XML Web Services)是Java平台上的一个标准,用于创建和消费Web服务。本篇将深入讲解如何基于JAX-WS开发一个WebService实例。 首先,让我们了解JAX-WS的基本概念。JAX-WS提供了一种简单的方式...

    jax-ws发布webservice

    Java API for XML Web Services(JAX-WS)是Java平台上的一个标准,用于构建和部署Web服务。它简化了Web服务的开发,使得Java开发者能够更方便地创建、调用和部署SOAP(Simple Object Access Protocol)服务。在这个...

    解决weblogic部署JAX-WS需要的配置文件

    JAX-WS(Java API for XML Web Services)是Java平台上的一个标准,用于创建和部署Web服务。WebLogic作为一款强大的Java EE应用服务器,支持JAX-WS标准,但正确配置和部署这些服务需要一些额外的步骤。本指南将详细...

    webservice之jax-ws

    JAX-WS,全称为Java API for XML Web Services,是Java平台上的一个标准,用于构建和部署基于SOAP(Simple Object Access Protocol)的Web服务。它是Java SE和Java EE平台的一部分,简化了开发人员在Web服务领域的...

    学习JAX-WSWebService开发

    JAX-WS(Java API for XML Web Services)是Java平台上的一个标准,用于构建和部署Web服务。它提供了一种简单、类型安全的方式来创建、调用Web服务,并且与Java SE和Java EE环境紧密集成。在本教程中,我们将深入...

    一个包含jax-ws和jax-rs的例子(含服务端和客户端)

    标题中的“一个包含jax-ws和jax-rs的例子(含服务端和客户端)”是指这是一个示例项目,它演示了如何使用Java API for XML Web Services (JAX-WS)和Java API for RESTful Web Services (JAX-RS)来创建和消费Web服务。...

    JAX-WS所需Jar包

    4. **jaxws-tools.jar**: 包含了JAX-WS相关的工具,如wsimport和wsgen,它们分别用于从WSDL生成Java源代码和服务端点,以及从Java源代码生成WSDL。 5. **sjsxp.jar**: 这是Java Simple XML Parser (JSXP)的实现,是...

    JAX-WS规范

    4. **生成客户端代理**:使用JAX-WS工具(如wsimport)根据WSDL生成客户端调用所需的类和Stubs。 5. **服务调用**:通过客户端代理调用Web服务,传递参数,接收响应。 ### 4. JAX-WS与WSDL的关系 WSDL是描述Web...

    JAX-WS API, JAX-RS API

    Java API for XML Web Services (JAX-WS) 是Java平台上的一个标准接口,用于创建和消费Web服务。它是Sun Microsystems在2004年推出的一个重要框架,旨在简化Web服务的开发,使得Java开发者能够更方便地实现基于SOAP...

    JAX-WS2.1用户指南

    通过学习和实践JAX-WS 2.1用户指南,开发者将能够熟练掌握Web服务的开发、部署和消费,提升其在分布式系统中的应用能力。同时,了解JAX-WS 2.1也将有助于理解后续版本(如JAX-WS 2.2)的新特性。

    jax-ws webservice demo

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

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

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

    jax-ws webservice简单demo

    Java API for XML Web Services(JAX-WS)是Java平台上的一个标准,用于构建和部署Web服务。它简化了Web服务的开发,使得开发者能够使用Java编程语言来创建、调用和部署SOAP(Simple Object Access Protocol)服务。...

    JAX-WS使用教程(内含jar包)

    本教程将深入讲解JAX-WS的核心概念、使用方法,并附带jar包供学习和实践。 **一、JAX-WS简介** 1. **定义与功能**:JAX-WS是Java EE的一部分,用于处理基于SOAP的Web服务。它简化了服务接口的创建,提供了自动化的...

    metro-jax-ws-jaxws221x.zip

    总之,“metro-jax-ws-jaxws221x.zip”是一个宝贵的资源,对于想要学习和掌握JAX-WS的开发者来说,它可以提供一个完整的实践环境,帮助理解Web服务的生命周期、客户端和服务端的交互以及如何在实际项目中应用JAX-WS...

    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...

Global site tag (gtag.js) - Google Analytics