根据wsdl生成java客户端
来源:互联网 发布:淘宝企业店铺开店要求 编辑:程序博客网 时间:2024/05/16 08:56
今天排查同事的一个很奇怪的问题,现在将今天遇到的问题列举出来。
在调用外围系统的webservice服务时候,一般来说对方会提供一个wsdl,然后我们要根据wsdl生成相应的类,通过这种方式,做到了跨语言的完美方案,但是也带来了一些复杂性。在java中我们一般使用jdk自带的wsimport工具或者其他三方系统的wsdl4j工具生成java版本的stub实现。
- 使用jdk里面自带的wsimport工具,具体使用办法如下:
在JDK的bin文件夹中,有一个wsimport.exe,这个工具依据wsdl文件生成相应的类文件,然后用这些类文件,就可以像调用本地的类一样调用WebService提供的方。该工具可以用于非Java的服务器,如:用C#编写的WebService,通过wsimport则生成Java的客户端实现。
在命令提示符中使用如下命令:
wsimport http://localhost:8080/Demo/services/MyService?wsdl
- 使用第三方ws框架,以cxf为例:
使用一下webservice的框架自带的一下wsdl4j生成,由于众所周知的原因,java的webservice的框架很多,经常由于版本和实现的不同,会出现一下莫名奇妙的问题,所以这个地方还是推荐使用你所使用的框架的wsdl4j工具生成相应的stub。
- 下载apache-cxf-2.5.11.zip并解压到D:\apache-cxf-2.5.11,下载地址:http://mirror.bjtu.edu.cn/apache/cxf/2.5.11/apache-cxf-2.5.11.tar.gz
- 在D:\apache-cxf-2.5.11\bin目录下面执行命令:wsdl2java http://xxx.yyy.com:8102/ws/UserRemoteService?wsdl
- 命令执行完成后在相关文件夹中会生成相应的代码,将代码全部引入接入系统,与wsimport是相同的
使用过程中遇到的问题:
- 在使用的过程中发现一个问题,由于jdk6最高只支持ws2.1规范版本,所以在jdk6下面生成的时候,要加上-frontend jaxws21
wsdl2java -frontend jaxws21 http://xxx.yyy.com:8102/ws/UserRemoteService?wsdl
- 发现可以根据wsdl生成java类,java类中的注释有可能是中文,所以要加上encoding参数,例如:-encoding utf-8
wsdl2java -ecoding utf-8 http://xxx.yyy.com:8102/ws/UserRemoteService?wsdl
- 根据wsdl生成java客户端
- 根据wsdl文件生成java代理客户端
- 根据WSDL生成Services客户端
- 根据wsdl文件生成客户端
- 根据wsdl文件生成java代理客户端(/传)
- 使用CXF根据wsdl地址自动生成客户端 (java)
- 使用axis2,根据WSDL生成java客户端代码
- 使用wsdl2java根据wsdl生成java客户端代码
- CXF调用客户端根据wsdl文件生成java代码
- webService 根据wsdl地址生成java客户端代码
- 使用axis2,根据WSDL生成java客户端代码
- 使用axis2,根据WSDL生成java客户端代码
- XFire根据WSDL生成客户端程序
- XFire根据WSDL生成客户端程序
- axis2根据wsdl生成客户端代码
- axis1.4 根据wsdl生成 客户端
- 如何根据wsdl文件生成客户端
- websevice根据wsdl生成客户端代码
- 第十六周项目2:有些数的阶乘不算了
- Codeforces Round #309 (Div. 1)D. Nudist Beach 二分+bfs
- java内存分配和String类型的深度解析
- Access数据库查询字段含有日文时该字段模糊查询失效的问题
- BZOJ 2091 Poi2010 The Minima Game 动态规划
- 根据wsdl生成java客户端
- 教你怎么查微信聊天记录?
- Codeforces Round #310 (Div. 1) B. Case of Fugitive
- Android应用的打包
- awk应用-信息的检索
- Android下使用AIDL进行通信
- Spark流编程指引(三)-------------------------------------初始化StreamingContext
- Python requests 自动登录某财BBS,自动签到打卡领铜钱,最后再配个plist,每天自动执行
- 第十六周项目3:max带来的冲突