准备工作:

  主要依赖的包:

  1.axis.jar

  官网:http://axis.apache.org/axis/

  2.jaxrpc.jar

  下载地址:http://www.java2s.com/Code/Jar/j/Downloadjaxrpcjar.htm

说明:

  在拿到wsdl地址后先分析清楚xml文件的一些参数,然后再动手写代码,例如service名称,targetNamespace,请求operation的名称,要传入的参数类型,返回结果类型等等。具体的代码参考如下:


1 package com.joysee.account.service.impl;
2
3
4 import java.rmi.RemoteException;
5
6 import javax.xml.namespace.QName;
7 import javax.xml.rpc.ParameterMode;
8 import javax.xml.rpc.ServiceException;
9
10 import org.apache.axis.client.Call;
11 import org.apache.axis.client.Service;
12
13
14 public class Test {
15
16 /**
17 * @param args
18 * @throws ServiceException
19 * @throws MalformedURLException
20 * @throws RemoteException
21 */
22 public static void main(String[] args) throws ServiceException, RemoteException {
23
24 //WSDL地址
25 String wsdlUrl ="http://IP:PORT/ExampleWebService?wsdl";
26 //看具体响应的WSDL中的namespace
27 String nameSpaceUri ="http://ws.exmaple.com/";
28
29 Service service = new Service();
30
31 Call call = (Call)service.createCall();
32 call.setTargetEndpointAddress(wsdlUrl);
33
34 //设置operation 名称,
35 call.setOperationName(new QName(nameSpaceUri, "order"));
36
37 //设置账户,注意参数为XSD_STRRING
38 call.addParameter("account", org.apache.axis.Constants.XSD_STRING,
39 ParameterMode.IN);
40
41 //设置账户,注意参数为XSD_LONG
42 call.addParameter("price", org.apache.axis.Constants.XSD_LONG,
43 ParameterMode.IN);
44
45 //设置返回类型为对象数组
46 call.setReturnClass(Object[].class);
47
48 Object[] result = (Object[]) call.invoke(new Object[]{"test","123456"});
49
50 System.out.println(result[0]);
51
52 }
53
54 }

常见异常:

1.org.xml.sax.SAXException: No deserializer for {http://www.w3.org/2001/XMLSchema}anyType

  这个异常需要检查call.setReturnClass(); 中的类型,或者是setReturnType()

2. Unexpected wrapper element order found.

 可以检查setOperationName中的QName参数,其中的NameSpace地址是不是有问题,或者operation名是否有误

Java利用Axis远程调用WebService接口的更多相关文章

  1. 一个简单的AXIS远程调用Web Service示例

    我们通常都将编写好的Web Service发布在Tomcat或者其他应用服务器上,然后通过浏览器调用该Web Service,返回规范的XML文件.但是如果我们不通过浏览器调用,而是通过客户端程序调用 ...

  2. Java调用webservice接口方法

                             java调用webservice接口   webservice的 发布一般都是使用WSDL(web service descriptive langu ...

  3. AXIS2远程调用WebService示例(Eclipse+AXIS)

    转自:http://www.cnblogs.com/lanxuezaipiao/archive/2013/05/10/3071584.html 我们将Web Service发布在Tomcat或者其他应 ...

  4. java 调用webservice接口wsdl,推荐使用wsdl2java,放弃wsimport

    网上说wsimport是jdk1.6后自带的客户端生成调用webservice接口的工具,其实我挺喜欢原生的东西,毕竟自家的东西用着应该最顺手啊,但往往让人惊艳的是那些集成工具. 本机jdk1.8.1 ...

  5. 利用MyEclipse开发一个调用webservice接口的程序

    上一篇文章我们已经学习了如何使用Java 工具MyEclipse开发一个webservice接口,那么接口开发好了如何调用?接下来我们就来解决这个问题. 1:首先随便创建一个Java project选 ...

  6. Java之HttpClient调用WebService接口发送短信源码实战

    摘要 Java之HttpClient调用WebService接口发送短信源码实战 一:接口文档 二:WSDL 三:HttpClient方法 HttpClient方法一 HttpClient方法二 Ht ...

  7. php中创建和调用webservice接口示例

    php中创建和调用webservice接口示例   这篇文章主要介绍了php中创建和调用webservice接口示例,包括webservice基本知识.webservice服务端例子.webservi ...

  8. 使用soapui调用webservice接口

    soapui是专门模拟调用webservice接口的工具,下面介绍下怎么使用: 1.下载soapui并安装: 2.以免费天气获取接口为例:http://www.webservicex.net/glob ...

  9. 使用JS调用WebService接口

    <script> $(document).ready(function () { var username = "admin"; var password = &quo ...

随机推荐

  1. 最小生成树 (Minimum Spanning Tree,MST) --- Kruskal算法

    本文链接:http://www.cnblogs.com/Ash-ly/p/5409265.html 引导问题: 假设要在N个城市之间建立通信联络网,则连通N个城市只需要N - 1条线路.这时,自然会考 ...

  2. HDU 6271 Master of Connected Component(2017 CCPC 杭州 H题,树分块 + 并查集的撤销)

    题目链接  2017 CCPC Hangzhou Problem H 思路:对树进行分块.把第一棵树分成$\sqrt{n}$块,第二棵树也分成$\sqrt{n}$块.    分块的时候满足每个块是一个 ...

  3. (寒假集训)Reordering the Cows

    Reordering the Cows 时间限制: 1 Sec  内存限制: 64 MB提交: 18  解决: 7[提交][状态][讨论版] 题目描述 Farmer John's N cows (1 ...

  4. 网络防嗅探工具SniffJoke

    网络防嗅探工具SniffJoke   在渗透测试中,通过网络嗅探,可以获取网络通信主机的各种信息.为了防止嗅探,Kali Linux提供了专用工具SniffJoke.该工具能够自动对用户的网络数据进行 ...

  5. sql server 存储过程中使用变量表,临时表的分析(续)

    最近,我有一朋友,对我说他的数据库中的很多存储过程,执行都是超时.让我替他看看是什么原因.我一看,原来他的存储过程中用了很多的临时表与变量表.于是我跟他说过犹不及. 在存储过程中使用临时表或变量表,使 ...

  6. cornerstone

    这东西是mac上的svn,忽然就不对劲了.感觉就是代码就是没拿对.里面显示都是正确的. 删了重新拿....

  7. this的四种绑定规则总结

    一.默认绑定 1.全局环境中,this默认绑定到window 2.函数独立调用时,this默认绑定到window console.log(this === window);//true functio ...

  8. spring 配置多数据源 (可行)

    可以看到AbstractRoutingDataSource获取数据源之前会先调用determineCurrentLookupKey方法查找当前的lookupKey,这个lookupKey就是数据源标识 ...

  9. POJ 1040 Transportation

    链接:http://poj.org/problem?id=1040 Transportation Time Limit: 1000MS Memory Limit: 10000K Total Submi ...

  10. 一扫天下——ZXing使用全解析

    一扫天下--ZXing使用全解析 二维码如今已经烂App了,无论什么App.没有二维码就好像低人一等了. 所以,在自己的项目中集成二维码功能还是非常有必要的. 网上非常多都是基于ZXing2.3的.可 ...