Java利用Axis远程调用WebService接口
准备工作:
主要依赖的包:
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接口的更多相关文章
- 一个简单的AXIS远程调用Web Service示例
我们通常都将编写好的Web Service发布在Tomcat或者其他应用服务器上,然后通过浏览器调用该Web Service,返回规范的XML文件.但是如果我们不通过浏览器调用,而是通过客户端程序调用 ...
- Java调用webservice接口方法
java调用webservice接口 webservice的 发布一般都是使用WSDL(web service descriptive langu ...
- AXIS2远程调用WebService示例(Eclipse+AXIS)
转自:http://www.cnblogs.com/lanxuezaipiao/archive/2013/05/10/3071584.html 我们将Web Service发布在Tomcat或者其他应 ...
- java 调用webservice接口wsdl,推荐使用wsdl2java,放弃wsimport
网上说wsimport是jdk1.6后自带的客户端生成调用webservice接口的工具,其实我挺喜欢原生的东西,毕竟自家的东西用着应该最顺手啊,但往往让人惊艳的是那些集成工具. 本机jdk1.8.1 ...
- 利用MyEclipse开发一个调用webservice接口的程序
上一篇文章我们已经学习了如何使用Java 工具MyEclipse开发一个webservice接口,那么接口开发好了如何调用?接下来我们就来解决这个问题. 1:首先随便创建一个Java project选 ...
- Java之HttpClient调用WebService接口发送短信源码实战
摘要 Java之HttpClient调用WebService接口发送短信源码实战 一:接口文档 二:WSDL 三:HttpClient方法 HttpClient方法一 HttpClient方法二 Ht ...
- php中创建和调用webservice接口示例
php中创建和调用webservice接口示例 这篇文章主要介绍了php中创建和调用webservice接口示例,包括webservice基本知识.webservice服务端例子.webservi ...
- 使用soapui调用webservice接口
soapui是专门模拟调用webservice接口的工具,下面介绍下怎么使用: 1.下载soapui并安装: 2.以免费天气获取接口为例:http://www.webservicex.net/glob ...
- 使用JS调用WebService接口
<script> $(document).ready(function () { var username = "admin"; var password = &quo ...
随机推荐
- [python] win7 64位 安装pygame
1.下载pygame 2.python 下载3.2.* 32位的(电脑64位没关系的) 3.先安装python,再安装pygame 4.验证是否成功 打开IDLE >>>impor ...
- (3)oracle建用户、建表、权限、命名空间
一.表空间 创建表空间 create tablespace ts001 datafile ‘d:\test\a.dbf’ size 20m uniform size 128k; 使用表空间 cre ...
- RQNOJ PID217 / [NOIP1999]拦截导弹【n^2 / LIS】
题目描述 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度.某天,雷达捕捉到敌国的导弹 ...
- 新疆大学ACM-ICPC程序设计竞赛五月月赛(同步赛)C 勤奋的杨老师【DP/正反LIS/类似合唱队形】
链接:https://www.nowcoder.com/acm/contest/116/C 来源:牛客网 题目描述 杨老师认为他的学习能力曲线是一个拱形.勤奋的他根据时间的先后顺序罗列了一个学习清单, ...
- Oracle数据库任何用户密码都能以sysdba角色登入
* 本文相关环境:Windows 10,64位操作系统:Oracle 11gR2:toad for Oracle12.1 最近在学习Oracle数据库,使用Toad for Oracle来查看数据库的 ...
- delphi 浮点数转换成十六进制字符串的方法
我们在研究封包技术时,经常会碰到将浮点数转换成十六进制形式.比如在游戏中人物的座标,经常就用浮点数来表示.怎么将浮点数转换成十六进制字符串形式呢?下面我将写出其在DELPHI中的方法. 先 ...
- rs485
rs485 编辑 智能仪表是随着80年代初单片机技术的成熟而发展起来的,现在世界仪表市场基本被智能仪表所垄断.究其原因就是企业信息化的需要,企业在仪表选型时其中的一个必要条件就是要具有联网通信接口.最 ...
- 前端福利:一套UI框架
阅读目录 背景 预览效果 表单组件 普通文本框 多行文本框 复选框 切换滑块 单选框 下拉选择框 数字输入框 时间选择 文件选择 显示文本 按钮 开源地址 背景 目前市场上有很多表单美化的UI,做的都 ...
- Android AIDL实例解析
AIDL这项技术在我们的开发中一般来说并不是很常用,虽然自己也使用新浪微博的SSO登录,其原理就是使用AIDL,但是自己一直没有动手完整的写过AIDL的例子,所以就有了这篇简单的文章. AIDL(An ...
- Java源码阅读Stack
Stack(栈)实现了一个后进先出(LIFO)的数据结构.该类继承了Vector类,是通过调用父类Vector的方法实现基本操作的. Stack共有以下五个操作: put:将元素压入栈顶. pop:弹 ...