WSDL2Java操作指南
1. 安装JDK1.5, 配置系统环境变量:
下载安装JDK后, 设置环境变量:
JAVA_HOME=C:/Program Files/Java/jdk1.5.0_02
Path=%Path%;%JAVA_HOME%/bin(这里的%Path%指你系统已经有的一系列配置)
CLASSPATH=%JAVA_HOME%/lib
下载axis后,配置如下:
AXIS_LIB=F:/Java/axis/axis-1_4/lib
然后在CLASSPATH里添加axis的8个jar:
CLASSPATH=%JAVA_HOME%/lib;
%AXIS_LIB%/axis.jar;
%AXIS_LIB%/axis-ant.jar;
%AXIS_LIB%/commons-discovery-0.2.jar;
%AXIS_LIB%/commons-logging-1.0.4.jar;
%AXIS_LIB%/jaxrpc.jar;
%AXIS_LIB%/log4j-1.2.8.jar;
%AXIS_LIB%/saaj.jar;
%AXIS_LIB%/wsdl4j-1.5.1.jar;
3. 添加附加的3个jar:
自己去获取activation.jar, mail.jar, xerces.jar, 放到AXIS_LIB所指的目录下,
然后在CLASSPATH里添加:
CLASSPATH=%JAVA_HOME%/lib;
%AXIS_LIB%/axis.jar;
%AXIS_LIB%/axis-ant.jar;
%AXIS_LIB%/commons-discovery-0.2.jar;
%AXIS_LIB%/commons-logging-1.0.4.jar;
%AXIS_LIB%/jaxrpc.jar;
%AXIS_LIB%/log4j-1.2.8.jar;
%AXIS_LIB%/saaj.jar;
%AXIS_LIB%/wsdl4j-1.5.1.jar;
%AXIS_LIB%/activation.jar;
%AXIS_LIB%/mail.jar;
%AXIS_LIB%/xerces.jar
5.1 先看命令的帮助, 在cmd.exe的提示符执行:java org.apache.axis.wsdl.WSDL2Java -h
我可以看到很多选项,其中就有-s和-S
5.2 执行WSDL2Java, 生成skeleton类:
java org.apache.axis.wsdl.WSDL2Java -s -S true BluePower.wsdl
将生成: A skeleton class
An implementation template class
One deploy.wsdd file
One undeploy.wsdd file
5.3 执行WSDL2Java, 不生成skeleton类:
java org.apache.axis.wsdl.WSDL2Java -s BluePower.wsdl
将生成:
An implementation template class
One deploy.wsdd file
One undeploy.wsdd file
(我们发现少了一个A skeleton class)
5.4 名字解释:
Skeleton class:
它是Axis engine 和 the actual service implementation 类之间的一个代理类。
The skeleton contains an implementation of the AddressBook service.
This implementation is either passed into the skeleton on construction,
or an instance of the generated implementation is created.
When the Axis engine calls the skeleton's addEntry method,
it simply delegates the invocation to the real implementation's addEntry method.
Implementation Template class:
它就是我们的实际服务器端的实现代码,我们要在不同的方法里写具体的实现处理。
6. 根据deploy.wsdd生成server-config.wsdd:
这里比较模糊,我暂时的方法是:
先部署一个web服务器,如用resin,然后把第5步生成的类文件放到classes下(eclipse可以指定编译路径),
把deploy.wsdd放到classes上一目录,也就是WEB-INF下,运行命令:
java -cp %AXIS_CLASSPATH% org.apache.axis.client.AdminClient -lhttp://localhost:8080/test/services/MyServer deploy.wsdd
若出现:<Admin>Done processing</Admin>则成功,若出现失败,则具体情况具体分析。
成功后,当前目录就会生成server-config.wsdd文件。
注意:为什么这里用%AXIS_CLASSPATH%, 因为直接把这些jar配置在CLASSPATH里,调用log4j时有冲突。最好不要放到CLASSPATH
7. server-config.wsdd文件里的未解决的数组类型问题:
若接口参数或返回值有数组,则会生成ArrayMapping的配置,而在resin下配置axis的servlet去装载,就是不行。
暂时的解决方法是,把这些数组类型就声明为一般类型,就能装载了;客户端用数组类型访问,服务器也能正常
解析出来,返回给客户端的数组类型,客户端也能正常解析
AXIS2之WSDL2JAVA
Axis2是常用的一种SOAP engine,但是它提供的wsdl2Java的命令行工具的说明比较简单,没有具体的例子。下面举出几个例子:
从最简单的开始 ,-uri 指定wsdl文件
> WSDL2Java -uri currencyConvert.wsdl
-d 使用不同的data binding方法
> WSDL2Java -uri currencyConvert.wsdl -d XML beans
-a 生成异步的方法
> WSDL2Java -uri currencyConvert.wsdl -a
-t 生成测试case
> WSDL2Java -uri currencyConvert.wsdl -t ...
稍微复杂一些的,-p可以指定生成的package,-o指定生成的路径,-ss生成服务端代码
wsdl2java -uri ../wsdl/currencyConvert.wsdl -o ../gen_src -ss -sd -g -p foo.bat
再复杂一些,-ns2p 将namespace进行替换,多个中间用逗号隔开
wsdl2java -uri ../wsdl /currencyConvert.wsdl -o ../wsdl /gen_src -ss -sd -g -p com.foo.bar -ns2p "http://www.xxx.yyy.com/zzz /v1.0"=com.foo.bar,"http://www.xxx.yyy.com/ddd/v1.1"=com.foo.bar.goo进入讨论组讨论。
C:/ws/classes> java org.apache.axis.wsdl.WSDL2Java -o . -d Session -s -S true -Nurn:MobileBoss com.yy.ws mb.wsdl
参数说明: -o 输出文件所在目录( .-代表当前目录 )
-s生成server端绑定代码
-d发布范围
-S是否产生发布和撤销webservice的deploy.wsdd和undeploy.wsdd文件。ture代表生成发布文件。
-Nurn:命名空间 包名
mb.wsdl - wsdl文件名。
Axis2是常用的一种SOAP engine,但是它提供的wsdl2java的命令行工具的说明比较简单,没有具体的例子。下面举出几个例子:
从最简单的开始 ,-uri 指定wsdl文件
> WSDL2Java -uri currencyConvert.wsdl
-d 使用不同的data binding方法
> WSDL2Java -uri currencyConvert.wsdl -d xmlbeans
-a 生成异步的方法
> WSDL2Java -uri currencyConvert.wsdl -a
-t 生成测试case
> WSDL2Java -uri currencyConvert.wsdl -t ...
稍微复杂一些的,-p可以指定生成的package,-o指定生成的路径,-ss生成服务端代码
wsdl2java -uri ../wsdl/currencyConvert.wsdl -o ../gen_src -ss -sd -g -p foo.bat
再复杂一些,-ns2p 将namespace进行替换,多个中间用逗号隔开
wsdl2java -uri ../wsdl/currencyConvert.wsdl -o ../wsdl/gen_src -ss -sd -g -p com.foo.bar -ns2p "http://www.xxx.yyy.com/zzz/v1.0"=com.foo.bar,"http://www.xxx.yyy.com/ddd/v1.1"=com.foo.bar.goo
稍微复杂一些的,-p可以指定生成的package,-o指定生成的路径,-ss生成服务端代码
wsdl2java -uri ../wsdl/currencyConvert.wsdl -o ../gen_src -ss -sd -g -p foo.bat
再复杂一些,-ns2p 将namespace进行替换,多个中间用逗号隔开
wsdl2java -uri ../wsdl/currencyConvert.wsdl -o ../wsdl/gen_src -ss -sd -g -p com.foo.bar -ns2p "http://www.xxx.yyy.com/zzz/v1.0"=com.foo.bar,"http://www.xxx.yyy.com/ddd/v1.1"=com.foo.bar.goo
相关推荐
axis2根据wsdl生成java客户端代码 D:\Software\axis2-1.6.2\bin>wsdl2java.bat -uri http://10.33.30.216:9099/facs/services/ResourceSynchroWebService?wsdl -o E:\wsdloutput -p com.util wsdl2java.bat -uri ...
标题中的"Axis2接口生成WSDL工具"正是 Axis2 的一个重要特性,它允许开发者通过Java接口自动生成描述Web服务的WSDL(Web Services Description Language)文件。 **1. Axis2 简介** Apache Axis2是Apache SOAP项目...
抛出无法找到主类:org.apache.axis.wsdl.WSDL2Java(Throws Could not find main class: org.apache.axis.wsdl.WSDL2Java)。 添加本文的jar包压缩包解压出来的所有jar包到当前使用的java.exe 命令的lib目录下的ext...
调用WSDL2Java需要相关jars,使用-cp添加进来,不支持使用通配符。提醒:Linux下jar之间使用冒号隔开:...wsdl4j-1.4.jar org.apache.axis.wsdl.WSDL2Java http://*.*.*.*/SMSWebService/services/sigMessageServices?wsdl
在IT行业中,开发Web服务是常见的任务之一,而 Axis 是一个流行的Java Web服务框架,用于创建和使用Web服务。本文将深入探讨如何使用MyEclipse集成开发环境来调用Axis工具,通过WSDL(Web Service Description ...
在 Axis2 中,我们可以使用WSDL2Java工具从一个给定的WSDL文件自动生成Java客户端代码。这个过程包括以下步骤: 1. **下载与安装**: 首先,你需要下载Axis2 1.6.2的发行版,这里提供的是"axis2-1.6.2"的压缩包。...
Apache Axis是用于构建和部署Web服务的一个开源框架,而WSDL2Java是其核心功能之一,用于从WSDL(Web服务描述语言)文件生成Java客户端和服务端的 stubs、skeletons和其他必要的类,从而简化了Web服务的开发过程。...
wsdl2java -uri your_wsdl_file.wsdl ``` 这将生成一系列的Java类,包括服务代理、消息处理器和服务实现类,它们可以直接在Java项目中使用。 3. **理解生成的Java代码** - **服务代理**:这是客户端与服务...
通过对Axis与Axis2在使用WSDL2Java工具时的不同之处的详细探讨,我们可以看到,虽然两种工具都实现了相似的功能,但Axis2在很多方面都进行了优化和改进,尤其是在命令行参数、部署描述文件生成以及数据绑定等方面。...
例如,命令 `java org.apache.axis.wsdl.Java2WSDL -o Capacity.wsdl -l http://localhost:8080/axis/services/Capacity -n urn:Capacity -p samples.capacity=urn:Capacity` 将生成一个名为 Capacity.wsdl 的 WSDL ...
在 Axis2 中,我们可以使用`org.apache.axis.wsdl.WSDL2Java`工具,根据WSDL文件自动生成与服务交互所需的Java客户端代码,这极大地简化了开发者的工作,无需手动编写复杂的SOAP消息构造代码。 首先,你需要确保...
2. **使用Axis2的wsdl2java工具**:这个工具可以从WSDL文件生成Java客户端代码,包括服务代理类和服务接口。运行`wsdl2java`命令时,需要提供WSDL的URL或本地路径。生成的代码可以导入到项目中,方便调用服务。 3. ...
标题中的“axis2 - wsdl 2 java”指的是Apache Axis2框架的一个功能,它能够将WSDL(Web Services Description Language)文件转换为Java代码。这个过程通常被称为代码生成,是开发基于SOAP(Simple Object Access ...
AXIS2 1.7.3 idea wsdl代码生成插件正是为了解决在IDEA中处理AXIS2项目时,自动生成与WSDL文件对应的Java源代码的问题。 这个插件的核心功能是将WSDL文件转换成可执行的Java客户端和服务端代码,从而简化了Web服务...
Apache Axis是Java平台上的一个开源Web服务框架,其中包含了`wsdl2java`工具,用于将WSDL文件转换为Java代码,使得开发者可以基于这些代码实现服务的客户端或服务器端。本篇文章将详细介绍`wsdl2java`命令的使用方法...
`wsdl2java`工具是Apache Axis项目的一部分,它能够自动根据WSDL文件生成Java客户端存根类,这些类使得Java应用程序能够方便地与符合WS-I标准的Web服务进行交互。 【标签】"webservice"和"java"进一步确认了这个...
wsdl2java工具 修改WSDL2Java(URL).bat后直接...%Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o%Output_Path% -p%Package% http://orp.westerasoft.com/ForpServer/CSecurityWebService.asmx?wsdl //http后换成wsdl地址
运行`wsdl2java.sh`或`wsdl2java.bat`,指定WSDL文件路径, Axis2会生成相应的源代码。 3. **编写业务逻辑**: - 在生成的Java服务类中实现业务逻辑。这些类会包含由Wsdl2Java工具自动生成的方法,你需要在这些...