小记wsdl2java

缘由要实现协同工作,在不同的平台交换数据,是以有一个wsdl文件需要转换成java类文件,以下有两种方式进行转换:(命令行方式)

一、CXF wsdl2java
配置环境变量 CXF-HOME 为“D:/czd/work/java/lib/apache-cxf-2.7.7”
增加 path “%CXF-HOME %bin” 后,
在cmd下运行
D:/>cd test
D:/test>cd 0828
D:/test/0828>wsdl2java -frontend jaxws21 -p com.czd.eas WFService.wsdl
即可。完成代码的生成。覆盖掉原来的代码即可。
Demo:
C:\apache-cxf-2.7.7\bin>wsdl2java -frontend jaxws21 -p com.czd.eas WFService.wsdl (文件拷到apache-cxf-2.7.7\bin目录下)

命令如图:
小记wsdl2java_第1张图片

包结构:

小记wsdl2java_第2张图片

二、AXIS wsdl2java

下载一个axis,假设2-1.5版本,解压
运行cmd,进入axis的bin目录,执行如下命令:
axis2-1.5\bin >wsdl2java.bat -uri D:\wsdl.xml -o D:\output -p com.bd.zd
-uri:wsdl文件
-o:Java文件输出路径
-p:生成的Java文件包名

Demo:D:\Users\test5>cdD:\Users\test5\Desktop\czd\axis2-1.6.2\bin D:\Users\test5\Desktop\czd\axis2-1.6.2\bin>wsdl2java.bat-uri D:\Users\test5\Desktop\czd\WFService.wsdl-o D:\output -p com.czd.eas

UsingAXIS2_HOME: D:\Users\test5\Desktop\czd\axis2-1.6.2

UsingJAVA_HOME: D:\GLDEV\java\jdk1.7.0_40

Retrievingdocument at 'D:\Users\test\Desktop\czd\WFService.wsdl'.

log4j:WARNNo appenders could be found for logger (org.apache.axis2.description.WSDL11ToAllAxisServicesBuilder).

log4j:WARNPlease initialize the log4j system properly.

命令如图:

小记wsdl2java_第3张图片

包结构:

小记wsdl2java_第4张图片

提问环节:(转)

Q1、java使用cxf和axis转换wsdl文件后,两种方式产生的类,结构、数量是不是相同的,会不会出现axis转换后生成a.java b.java,使用cxf转换生成a.java b.java c.java 。

A1、不会的,因为web service是基于soap协议的,所有不管使用那种都是一样的。

Q2、java中:使用axis转换wsdl地址生成的java代码就两个java文件和一个build.xml文件。调用有点不同而已。那使用cxf转换后,是不是和axis转换的类相同,里面的内容不同 是肯定的。
A2、cxf是通过一个配置一个xml文件来生成,你想要配置他如何生成就如何生成java类,但是生成的类还是和通过cxf生成不一样的。axis生成的java类只有两个,有一个类如果你的连接地址很大那么它会很大很大,我曾经做过一个连接地址生成几十万行代码一打开myeclipse就几乎崩溃。所以我都不去理会它。不过生成之后也是真的不用理他。你只管调用。

 

最后的最后,当然还可以用myeclipse工具生成,在这里就不一一赘述了。

 

你可能感兴趣的:(java)