java调用webservice方法
2024-10-19 05:35:16
由于项目的历史原因,webservice服务端是乙方公司开发的,我们自己开发的系统需要去调用乙方公司的webservice接口。前面用了网上提供的一种方法(非生成代理类),怎么也调用不成功(也许是因为服务端的wsdl的版本太低),开始还以为乙方公司接口的问题,后来用.net试了一下,直接调用成功,说明接口没有问题。
后来经过思考,还是采用生成代理类的方法来调用,刚开始用cxf,下载完cxf压缩包,用wsdl2java.bat生成java代理类,结果直接报错:WSDLToJava Error:Rpc/encoded wsdls are not supported with CXF,网上一查是因为服务端的wsdl版本太老(服务端是用axis)。
无奈只好放弃cxf,改用axis,下载axis1.4版本http://mirror.bit.edu.cn/apache/axis/
注意:如果服务端wsdl比较老的话,请下载低版本,不要下载axis2
下载完后,在F:\axis-bin-1_4\axis-1_4\lib下建一个以下的bat文件:
set Axis_Lib=f:\axis-bin-1_4\axis-1_4\lib
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
set Axis_Servlet=http://host:5080/xxxx/services/xxxService?wsdl
%Java_Cmd% org.apache.axis.wsdl.WSDL2Java -u %Axis_Servlet%
双击之后,该文件,自动生成java的代理类,生成之后,建一个main函数调用:
public static void main(String[] args) throws Exception { Object[] pas = new Object[2];
pas[0] = "2"; pas[1] = "xxxx";
MapWebServiceServiceLocator ms = new MapWebServiceServiceLocator();
MapWebService client=ms.getMapWebService();
Object a = client.unsafeInvokeService("方法名", pas);
System.out.println(a.toString()); }
这样就可以调用成功了!!!
所需的包,pom.xml
<dependency>
<groupId>org.apache.axis</groupId>
<artifactId>axis</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>commons-discovery</groupId>
<artifactId>commons-discovery</artifactId>
<version>0.2</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.axis</groupId>
<artifactId>axis-jaxrpc</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>org.apache.axis</groupId>
<artifactId>axis-saaj</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>wsdl4j</groupId>
<artifactId>wsdl4j</artifactId>
<version>1.4</version>
</dependency>
最新文章
- [驱动开发] windbg符号表
- C++调用C函数
- 【BZOJ-3667】Rabin_Miller算法 随机化判素数
- UVa 11988 Broken Keyboard(链表->;数组实现)
- 《Linux内核设计与实现》CHAPTER1,2阅读梳理
- DDD 领域驱动设计-看我如何应对业务需求变化?
- Struts2的处理结果(三)——动态配置结果
- C语言实例代码
- 判断文件夹下是否存在txt格式的文本文件
- [再做01背包] POJ 3624 Charm Bracelet
- wix xslt for adding node
- Zookeeper集群安装详解
- <;转>;libjpeg解码内存中的jpeg数据
- CodeForces-2015 HIAST Collegiate Programming Contest-Gym-100952A-Who is the winner?
- 平安技术开放日质量保证技术专场第一期 [附部分 ppt]
- 闪电侠 Netty 小册里的骚操作
- swift项目初始化并添加忽略文件Swift.ignore
- epoll实现机制分析
- 运行Chromium浏览器无法登录谷歌账号因为缺少google api密钥
- 给自己的小练习19-[kuangbin带你飞]专题九连通图
热门文章
- delphi 多线程之System.TMonitor
- 写好的Java代码在命令窗口运行——总结
- Optaplanner终于支持多线程并行运行 - Multithreaded incremental solving
- python 文件处理(转载)
- vim的基础操作
- Unity 代码组件获取和使用、Resources加载、OnGUI、Time、Mathf、PlayerPref
- Git操作相关记录
- js obj对象转formdata格式代码
- 创建自定义的 Angular Schematics
- jquery操作select下拉框的各种方法,获取选中项的值或文本,根据指定的值或文本选中select的option项等