wsimport

本文介绍如何利用wsimport工具根据服务端提供的wsdl文件生成Java客户端类,以便实现与WebService服务器的通信。重点阐述了命令参数的使用,包括输出目录、保留源代码和详细信息选项。

wsimport
wsimport是在JDK的bin目录下的一个exe文件(Windows版),主要 功能是根据服务端发布的wsdl文件生成客户端存根及框架,负责与Web Service 服务器通信,并在将其封装成实例,客户端可以直接使用,就像使用本地实例一样。对Java而言,wsimport帮助程序员生成调用web service所需要的客户端类文件.java和.class。要提醒指出的是,wsimport可以用于非Java的服务器端,如:服务器端也许是C# 编写的web service,通过wsimport则生成Java的客户端实现。

命令参数说明:

  • -d 生成客户端执行类的class文件的存放目录
  • -s 生成客户端执行类的源文件的存放目录
  • -p 定义生成类的包名

下面2种方式都是正确的。

wsimport -d ./bin -s ./src -p com.test.ws http: //localhost:8088/hellowservice?wsdl    

wsimport -d ./bin -s ./src -p com.test.ws ./wsdl/HellowService.wsdl

 

C:\Program Files\Java\jdk1.7.0_65\bin>wsimport  -keep -d e:\src -p com.voiinnov.
dwlc.sms.ws  http://sdk2.zucp.net/webservice.asmx?wsdl

 

它有几个很重要的参数,

-d 表示输出的目录,目录必须事先存在,否则导出失败。

 -keep表示导出webservice的class文件时是否也导出源代码java文件。

-verbose表示详细信息

 

WebService是一种跨编程语言和跨操作系统平台的远程调用技术,它允许不同的应用程序通过网络进行通信和交互。wsimport是JDK提供的一个工具,用于根据WSDL(Web Services Description Language)文件生成客户端代码,从而方便地调用WebService。 ### 使用方法 - **wsimport命令使用**:在本地找到项目建包的根目录,进入该目录后打开命令行窗口,输入`wsimport -s . 服务地址`(中间有个点),执行完成后,会在该目录生成相关文件。例如在maven项目中,找到java目录,在该目录下执行此命令 [^5]。 - **客户端代码测试**:生成代码后,可编写客户端代码进行测试。如新建客户端代码,导入相关服务类,获取服务实例并调用服务方法。示例代码如下 [^4]: ```java package cn.edu.ccut.client; import cn.edu.ccut.service.impl.TestService; import cn.edu.ccut.service.impl.TestServiceImplService; public class TestClient { public static void main(String[] args) { TestServiceImplService testServiceImplService = new TestServiceImplService(); TestService service = testServiceImplService.getTestServiceImplPort(); System.out.println(service.add(1, 2)); } } ``` ### 应用场景 - **不同系统间的数据交互**:当企业内部存在多个不同技术栈开发的系统,需要进行数据共享和交互时,可通过WebService暴露接口,其他系统使用wsimport生成客户端代码进行调用。 - **跨平台通信**:在不同操作系统和编程语言的环境下,WebService可以实现跨平台的通信,wsimport则帮助客户端快速接入服务。 ### 两者关系 wsimport是为了更好地调用WebService而存在的工具。WebService发布后,会提供对应的WSDL文件来描述服务的接口信息,wsimport工具可以解析这个WSDL文件,生成客户端可以直接使用的Java代码,简化了客户端调用WebService的开发过程。 ### WSDL解析 点开webservice网站上的相关服务的wsdl链接(如http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl ),可以查看wsdl对服务器的描述。Wsdl文档从下往上读,包含以下重要元素 [^3]: - **wsdl:service**:所有请求服务的站点集合。 - **wsdl:port**:定义为webservice单个服务访问点。 - **binding**:特定服务访问点与具体服务类的绑定。 - **PortType**:对于某个访问入口点类型所支持的操作的抽象集合,这些操作可以由一个或多个服务访问点来支持(服务类)。 - **Operation**:对服务中所支持的操作的抽象描述,一般单个Operation描述了一个访问入口的请求/响应消息对(方法)。 - **Types**:数据类型定义的容器,它使用某种类型系统需要的输入参数和输出参数的数据类型。 - **Message**:通信消息的数据结构的抽象类型化定义,使用Types所定义的类型来定义整个消息的数据结构(输入参和输出参)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值