如何根据带账号密码的WSDL地址生成JAVA代码
作者:地狱圣者
wsdl:
网络服务描述语言bai是Web Service的描述语言,它包含一系列描述某du个web service的定义。
一、组成:zhi
WSDL 文档可以分为两部分。顶部分由抽象定义组成,而底部分则由具体描述组成。
二、元素:
- WSDL 元素基于XML语法描述了与服务进行交互的基本元素:
- Type(消息类型):数据类型定义的容器,它使用某种类型系统(如 XSD)。
- Message(消息):通信数据的抽象类型化定义,它由一个或者多个 part 组成。
- Part:消息参数
- Operation(操作):对服务所支持的操作进行抽象描述,WSDL定义了四种操作: 1.单向(one-way):端点接受信息;
2.请求-响应(request-response):端点接受消息,然后发送相关消息;
3.要求-响应(solicit-response):端点发送消息,然后接受相关消息;
4.通知(notification):端点发送消息。
- Port Type(端口类型):特定端口类型的具体协议和数据格式规范。
- Binding:特定端口类型的具体协议和数据格式规范。
- Port:定义为绑定和网络地址组合的单个端点。
- Service:相关端口的集合,包括其关联的接口、操作、消息等。
使用jdk里面自带的wsimport工具,具体使用办法如下:
在JDK的bin文件夹中,有一个wsimport.exe,这个工具依据wsdl文件生成相应的类文件,然后用这些类文件,就可以像调用本地的类一样调用WebService提供的方。该工具可以用于非Java的服务器,如:用C#编写的WebService,通过wsimport则生成Java的客户端实现。
在命令提示符中使用如下命令:
wsimport http://localhost:8080/Demo/services/MyService?wsdl
命令参数说明:
- -d:生成客户端执行类的class文件的存放目录
- -s:生成客户端执行类的源文件的存放目录
- -p:定义生成类的包名
其他命令参数请参照:http://docs.oracle.com/javase/6/docs/technotes/tools/share/wsimport.html
使用wsimport命令后,可以得到代码,然后可以将代码拷贝到工程里面,也可以将其编译,打包成jar。
比如 javac com/xxx/*.java com/xxx/yyy/*.java
jar cvf dest.jar com/
这样我们就能得到一个dest.jar文件
使用一下webservice的框架自带的一下wsdl4j生成,由于众所周知的原因,java的webservice的jar很多,经常由于版本和实现的不同,会出现一下莫名奇妙的问题,所以这个地方还是推荐使用你所使用的框架的wsdl4j工具生成相应的stub。
wsimport -d E:\data\soap -keep -verbose -Xauthfile E:\data\soap\11.txt http://XXXXXXX
其中11.txt里填写wsdl地址:http://账号:密码@XXXXXXX
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。