码迷,mamicode.com
首页 > 编程语言 > 详细

java之wsdl自动生成WebService客户端

时间:2017-08-24 21:33:48      阅读:461      评论:0      收藏:0      [点我收藏+]

标签:其他   ini   ice   解决方法   博客   不用   sdn   1.3   完成   

在web项目中调用webservice接口,以及创建自己的webservice服务端


由于甲方的服务器并不在外网,编码环境是不能直接访问对方的webservice接口的,所以需要把wsdl文件下载到本地,在通过工具生成代理类。

用java的JDK自带命令wsimport -s . xxx.wsdl生成代理类

  • 其中-s表示生成源代码,不指定的话只会生成.calss字节码文件
  • 中间的点"."表示在当前路径
  • 后面空格接上本地的wsdl文件或者URL,例如http://www.xxx.com/serviceInterface?wsdl

wsimport命令可以指定包名以及生成jar包等,具体命令用法百度


 

但是这次执行命令不成功,报错:Use of SOAP Encoding is not supported

百度了一下,说是wsimport不支持use="encoded",是比较旧的格式,需要用到axis这个框架

有一篇博客有解决方法:根据wsdl生成客户端:Use of SOAP Encoding is not supported

不过我直接用eclipse根据wsdl自动生成客户端代理类了,就不用自己一个一个导入jar包再调用命令。

  • 这里使用的是J2EE Eclipse,里面集成了axis插件,myeclipse好像不行

具体步骤如下:

1.首先创建一个java工程,并把wsdl文件复制进入

技术分享

 

2.工程右键,创建一个web service client

技术分享

 

3.选择wsdl文件,点击finish即可

技术分享

 

4.完成

技术分享


 

由于我使用的是Intellij IDEA开发项目,所以还需要把代理类拷贝过去,以及配置maven导入axis的相关jar包

  • 可以先在eclipse修改包名,它会自动关联修改;也可以拷到Intellij再修改

技术分享

  • 在pom.xml中配置需要的jar包
  • mail-1.4.jar
  • saaj-api-1.3.jar
  • jaxrpc-1.1.jar
  • commons-discovery-0.2.jar
  • commons-logging-1.1.jar
  • axis-1.4.jar
  • activation-1.1.jar
  • wsdl4j-1.4.jar

这里列出一些配置,其他的去maven repository搜索,然后复制粘贴过来就行了

 技术分享


服务端发布是用CXF框架的,刚用TinyMCE写博客不太习惯,下一篇再说服务端吧

关于Axis和CXF框架区别,引用其他人的博客:WebService流行框架之Axis和CXF

java之wsdl自动生成WebService客户端

标签:其他   ini   ice   解决方法   博客   不用   sdn   1.3   完成   

原文地址:http://www.cnblogs.com/demojie/p/java_webservice.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!