下面是一个使用wsdl2java的例子:

C:\Users\Administrator>F:

F:\>cd misps2

F:\misps2>wsdl2java -d . http://10.10.31.25/MSPGWebPub/MSPGS/MPService.svc?wsdl

F:\misps2>

方法2:F:\phone>wsdl2java -d src -client http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl

环境配置:

1、下载apache-cxf-2.6.2在环境变量中配置CXF_HOME ,在PATH中加入%CXF_HOME%\bin

2、输入cmd 进入控制窗口,输入wsdl2java看是否配置成功

3、参考它的文档看这个工具的具体参数的用法
wsdl2java用法:
wsdl2java -p com -d src -all aa.wsdl
-p 指定其wsdl的命名空间,也就是要生成代码的包名:
-d 指定要产生代码所在目录
-client 生成客户端测试web service的代码
-server 生成服务器启动web service的代码
-impl 生成web service的实现代码
-ant 生成build.xml文件
-all 生成所有开始端点代码:types,service proxy,,service interface, server mainline, client mainline, implementation object, and an Ant build.xml file.

wsdl2java -p QueryHrEmployee -d e:\ -all http://10.70.158.127
:8080/axis2_14/services/QueryHrEmployee?wsdl

方法二:使用wsdl2java生成客户端

1、需要 一个包:apache-cxf-2.6.1.gz

这个包里有好多jar包,一定要下载下来。

将此包解压,我是放在:E:\CXF\apache-cxf-2.6.1


2、将URL调用成功的页面内容,另存为XML
    

3、在cmd中通过wsdl2java生成客户端文件

cd 进入apache-cxd-2.6.1\bin目录
执行命名:
wsdl2java -p service.webservice.client.demo -d F:\MyDocuments\Java\ws\InterfaceControlApp\src -verbose "F:\demoForWebSerivce.xml"
解析
wsdl2java -p 包名 -d 生成文件路径 -verbose "wsdl文件路径"
然后再拷贝到项目里
包名:文件存放的包名,可以写项目中包路径
生成文件路径 :文件存放路径,可以直接写项目路径
wsdl文件:在IE中执行服务端URL显示的XML另存为XML文件。
我是直接到项目路径了,生成前:

生成后:

报错处理:

4、写MAIN调用
     package common;
import javax.xml.ws.Service;
import service.webservice.client.demo.DemoForWebService;
import service.webservice.client.demo.DemoForWebServiceImplService;
import service.webservice.client.demo.User;
/**
* @author 作者 E-mail:
* @version 创建时间:2013-3-20 下午03:39:29
* 类说明
*/
public class TestWSClientByZBY {
/**
  * @param args
  */
public static void main(String[] args) {
  // TODO Auto-generated method stub
  Service service = Service.create(DemoForWebServiceImplService.SERVICE);
 
  String endpointAddress = "http://127.0.0.1:8080/InterfaceControlApp/webservice/demoForWebService?wsdl";
  service.addPort(DemoForWebServiceImplService.HTTPPort, javax.xml.ws.soap.SOAPBinding.SOAP11HTTP_BINDING, endpointAddress);
  // DMSSender dms = service.getPort(DMSSender.class);
  DemoForWebService dms = service.getPort(DemoForWebServiceImplService.HTTPPort,DemoForWebService.class);
   User user;
  try {
   user = dms.getUserById("admin");
   System.out.println(user.getXtczdm());
  } catch (Exception e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
}
}

在服务端的实现类中@WebService(endpointInterface = "service.webservice.DemoForWebService",targetNamespace="http://webservice.service/",portName="HTTP_Port")
成功后:

调用完成。

利用CXF wsdl2java生成java代码

2012-08-24 18:06:52|  分类:java|  标签:|字号大中小订阅

环境配置:

1、下载apache-cxf-2.6.2在环境变量中配置CXF_HOME ,在PATH中加入%CXF_HOME%\bin

2、输入cmd 进入控制窗口,输入wsdl2java看是否配置成功

3、参考它的文档看这个工具的具体参数的用法
wsdl2java用法:
wsdl2java -p com -d src -all  aa.wsdl
-p  指定其wsdl的命名空间,也就是要生成代码的包名:
-d  指定要产生代码所在目录
-client 生成客户端测试web service的代码
-server 生成服务器启动web  service的代码
-impl 生成web service的实现代码
-ant  生成build.xml文件
-all 生成所有开始端点代码:types,service proxy,,service interface, server mainline, client mainline, implementation object, and an Ant build.xml file.
详细用法见:http://cwiki.apache.org/CXF20DOC/wsdl-to-java.html

http://blog.chinaunix.net/u2/73798/showart_2002108.html

http://hgoldfish.mysmth.net/2007/11/04/cxfceuuaaoathinaeoeie-2/

实例:wsdl2java -p com -d d:/src -client  http://portal.emp.gome.inc/HOwebapp/Gome.OA.ProcessService/Service/ProcessService.asmx?wsdl

Apache CXF 是一个Service框架,他简化了Service的创建, CXF实现了JAX-WS2.0规范,并通过了JAX-WS2.0 TCK; CXF和Spring无缝集成;CXF支持多种传输协议(HTTP, JMS, Corba等), 支持多种Binding数据格式(SOAP,XML,JSON等), 支持多种DataBinding数据类型(JAXB, Aegis) 。CXF基于Interceptor的架构,使得整个框架非常易于扩展。
二.  如何发布并调用简单的web service实例
2.1.下载:apache-cxf-2.1.1  http://cxf.apache.org/download.html
2.2. 新建java project ,并加入apache-cxf-2.0.7/lib所有包,编写要发布的web service 接口和实现
import javax.jws.WebService;
@WebService 
public interface HelloWorld {  
public String sayHello(String text);  
}
import javax.jws.WebService;  
@WebService(endpointInterface="test.HelloWorld")  
public class HelloWorldImpl implements HelloWorld {  
public String sayHello(String text) {  
return "Hello" + text ;  
}  
@WebService 注解表示是要发布的web 服务
name:用于Interface,属映射到wsdl:portType element的name属性。 
targetNamespace:用于Interface和implement,如果不指定,缺省会使用包名倒序做为wsdl名空间。
serviceName:用于implement,表示wsdl服务名。
portName:用于implement,表示wsdl:port 的name属性。
endpointInterface:用于implement,指定Interface全名,包括包名。
2.3.发布web service
public class Server {
protected Server() throws Exception {
System.out.println("Starting Server");
HelloWorldImpl implementor = new HelloWorldImpl();
String address = "http://localhost:9000/helloWorld";
Endpoint.publish(address, implementor);
}
public static void main(String args[]) throws Exception {
new Server();
System.out.println("Server ready...");
Thread.sleep(5 * 60 * 1000);
System.out.println("Server exiting");
System.exit(0);
}
}
运行后,在浏览器中输入http://localhost:9000/helloWorld?wsdl将显示这个web service的wsdl.说明web service发布成功。
2.4.下面就开始创建一个客户端程序,访问这个web service, 同样新建java project ,并加入apache-cxf-2.0.7/lib所有包,由于CXF已经提供wsdl转化成java 的命令工具,所以创建一个build.xml,用来生成客户端程序。Bulid.xml内容如下:
<?xml version="1.0"?>
<project name="cxf wsdl2java" basedir=".">  
<property name="cxf.home" location ="${basedir}/WebRoot/WEB-INF/"/>
<path id="cxf.classpath">
<fileset dir="${cxf.home}/lib">
<include name="*.jar"/>
</fileset>
</path>     
<target name="cxfWSDLToJava">
<java classname="org.apache.cxf.tools.wsdlto.WSDLToJava" fork="true">
<arg value="-client"/>
<arg value="-d"/>
<arg value="src"/>
<arg value="http://localhost:9000/helloWorld?wsdl"/>
<classpath>
<path refid="cxf.classpath"/>
</classpath>
</java>
</target>
</project>
或者:配置环境变量%CXF_HOME%=E:/WebService/CXF/apache-cxf-2.1.1/apache-cxf-2.1.1(以我的目录为例),并在PATH后加上;%CXF_HOME%/bin
在cmd命令行中输入wsdl2java如果显示其用法表示配置好了。
输入:wsdl2java -d src - client http://localhost:9000/helloWorld?wsdl
其作用上面的build.xml作用一样。
附加:wsdl2java用法:
wsdl2java -p com -d src -all  aa.wsdl
-p  指定其wsdl的命名空间,也就是要生成代码的包名:
-d  指定要产生代码所在目录
-client 生成客户端测试web service的代码
-server 生成服务器启动web  service的代码
-impl 生成web service的实现代码
-ant  生成build.xml文件
-all 生成所有开始端点代码:types,service proxy,,service interface, server mainline, client mainline, implementation object, and an Ant build.xml file.
详细用法见:http://cwiki.apache.org/CXF20DOC/wsdl-to-java.html
2.5.调用web service
public class MyClient {
public static void main(String[] argv) {
HelloWorld  hello = new HelloWorldImplService().getHelloWorldImplPort();
System.out.println(hello.sayHello("Tom") ); 
}
}
注意:运行时,要一定先要发布web sevice.
三.  参考资料
1.CXF 主页: http://cxf.apache.org/
2. CXF中文讨论组: http://groups.google.com/group/cxf-zh 
3. Web service: http://www.w3school.com.cn/webservices/index.asp
4. WSDL: http://www.w3school.com.cn/wsdl/index.asp
5. SOAP:http://www.w3school.com.cn/soap/index.asp
-----------------------------------------------------------以上是参考资料,以下是自己的实践-----------------------------------------------------------------------------
我在操作过程中,发现了一个方法的参数resultCode,以及另一个方法的voteCode都让我误操作定义为了错误的类型。
因此需要对 WSDL进行修改后,将其放置在:D:/test/0328目录下面。
我按照上面的地址下载到二级制压缩文件  apache-cxf-2.3.3.zip以后要注意,不要下载包含有src的
例如: apache-cxf-2.3.3-src.tar.gz
解压缩到D:/work/lib/apache-cxf-2.3.3
配置环境变量 CXF-HOME  为“D:/work/lib/apache-cxf-2.3.3”
增加  path  “%CXF-HOME %bin” 后,
在cmd下运行
D:/>cd test
D:/test>cd 0328
D:/test/0328>wsdl2java -frontend jaxws21 -p com.chinatelecom.jx.vote.inf.partner
 *wsdl

CXF中 wsdl2java工具的使用方法相关推荐

  1. pxcook导出html代码,PxCook中标注工具的使用方法

    今天我们来学习一下有关于PxCook中标注工具吧,下文是小编带来的PxCook中标注工具的使用方法,一起来学习一下吧. PxCook中标注工具的使用方法 1.下载安装PxCook后进入sketch界面 ...

  2. 老船履带工具使用方法_PS中各个工具的使用方法与技巧

    PS,全称photoshop,一款性能强大的制图软件,修图人必备的软件,那么一个小白可以快速学会哪些工具键呢? 1.移动工具,可以对PS里的图层进行移动 快捷键"CTRL"+&qu ...

  3. CXF的wsdl2java工具

    一.资源下载 1.下载CXF  MAC OS / Linux    ***.tar.gz Windows    ***.zip 注意:不要下载带src的文件 二.环境设置 CXF环境配置 解压apac ...

  4. 如何使用CXF的wsdl2java工具

    一.资源下载 1.下载CXF ,博主使用的是3.3.13版本,链接路径 里面有很多文件,我们只需要按照以下原则选择即可 操作系统 目标文件 MAC OS / Linux ***.tar.gz Wind ...

  5. CDR中调和工具的使用方法

    CDR中的调和工具也是一个神奇的工具,和AI中的混合工具类似,可以做出很多好看的形状,下面先看下他的基本操作方法. 要了解cdr调和工具怎么用,首先要知道调和工具的作用.调和工具的作用就是将两个图形连 ...

  6. 工具类的方法怎么引用_Hutool中那些常用的工具类和方法

    Hutool是一个Java工具包,它帮助我们简化每一行代码,避免重复造轮子.如果你有需要用到某些工具方法的时候,不妨在Hutool里面找找,可能就有.本文将对Hutool中的常用工具类和方法进行介绍. ...

  7. C++编码中减少内存缺陷的方法和工具

    2019独角兽企业重金招聘Python工程师标准>>> C++编码中减少内存缺陷的方法和工具 程振林,方金云,唐志敏 (中国科学院计算技术研究所,北京 100080) 摘 要:基于C ...

  8. validate方法中校验工具类

    日常Java开发中,我们使用validate的校验是很方便的,但是也有一些特殊情况需要单独处理, 例如:导入Excel校验,传入的是MultipartFile文件类型,我们不能使用注解进行校验实体信息 ...

  9. 解决回归过程中内生性问题的方法之一-工具变量法

    OLS是常用的回归方法之一,那么OLS在使用过程中最重要的一个前提是解释变量与扰动项不相关,解释变量可以理解为我们研究时的自变量,扰动项可以理解为我们研究时与自变量独立的控制变量,如果出现解释变量与扰 ...

最新文章

  1. 马斯克晒特斯拉Autopilot疯狂驾驶模式,称还要开发“极速惊魂”模式
  2. oracle数据库视图有红叉,oracle触发器 前面的红叉是什么意思
  3. windows下MBCS和UNICODE编码的转换
  4. axios vue 回调函数_VUE使用axios调用后台API接口的方法
  5. selenium-隐式等待和显式等待-0223
  6. 测试学python路线_小蜗分享:Python测试开发全套学习路线
  7. RTT学习笔记5-线程间的通讯
  8. 栈的理解以及如何计算程序所需栈的大小并在IAR中设置栈
  9. 使用AdapterTypeRender对不同类型的item数据到UI的渲染
  10. 3DMax导出FBX文件贴图丢失
  11. 2021牛客多校#10 F-Train Wreck(数学,优先队列)
  12. 计算机专硕毕业论文写什么,关于学姐写硕士毕业论文的一些经验,分享给大家...
  13. 爬虫实例 8684公交网-太原公交线路信息
  14. 力扣刷题 DAY_69 回溯
  15. 怎么进入修复计算机界面,开机进入启动修复界面不能启动win7电脑的修复办法...
  16. Data too long for column ‘xxx‘ at row 1 ——数据库字段长度太短
  17. 苹果13防水吗 苹果13颜色哪个好看
  18. AutoCAD中凸度的概念以及求圆弧的凸度
  19. 淘宝滑块的解决方法和api接口
  20. 小议去哪儿与太平洋电脑城^_^

热门文章

  1. 利用transform:rotate( )制作折扇
  2. 【网易互娱游研面经】面经+心得
  3. 最全面的SpringMVC教程(一)——SpringMVC简介
  4. (理解)单链表算法循环条件while(p)和while(p->next)有什么区别
  5. zset 怎么get_Redis之ZSet命令
  6. 16 zset 相关操作
  7. STM32的TAMPER-RTC管脚作为Tamper使用 - 防拆机
  8. 一致性哈希与python实现
  9. charCodeAt与fromCharCode
  10. Vue.js+ECharts:堆叠柱状图