(转)Java通过axis调用WebService
转自:http://blog.csdn.net/wanglha/article/details/49679825
转载地址:http://www.linuxidc.com/Linux/2015-06/118460.htm
------------------------------------------分割线------------------------------------------
免费下载地址在 http://linux.linuxidc.com/
用户名与密码都是www.linuxidc.com
具体下载目录在 /2015年资料/6月/6日/Java通过axis调用WebService/
下载方法见 http://www.linuxidc.com/Linux/2013-07/87684.htm
------------------------------------------分割线------------------------------------------
包含:axis.jar,commons-discovery.jar,commons-logging-1.0.4.jar,jaxrpc.jar,wsdl4j.jar,mail.jar。
为什么会有mail.jar呢?俺也不太清楚,如果没有的话会报警告:
2014-10-22 15:07:45 org.apache.axis.utils.JavaUtils isAttachmentSupported
警告: Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart). Attachment support is disabled.
网上有很多说这个问题的,但是还是没闹明白,还是加上mail.jar稳妥点。
对接webservice一定要有接口地址了
例如:
http://10.10.10.10:8080/xxxxx/services/XXXXWebservice?wsdl
直接上我写的测试代码吧(包名、地址、类名我都换成xxx了)
soapaction是通过访问接口地址获得的,targetNamespace
<wsdl:definitions targetNamespace="http://webservice.xxxx.com">
package xx.xxxx.xxx;
import java.NET.URL;
import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;
import javax.xml.rpc.encoding.XMLType;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
public class XXXWebService {
public static void main(String[] args) {
String soapaction = "http://webservice.xxxxxx.com";
//你的webservice地址
String endpoint = "http://10.10.10.10:8080/xxxxx/services/XXXXWebservice";
Service service = new Service();
try {
Call call = (Call) service.createCall();
call.setTimeout(new Integer(60000));
call.setTargetEndpointAddress(new URL(endpoint));
//你需要远程调用的方法
call.setOperationName(new QName(soapaction,"getXXXX"));
//方法参数,如果没有参数请无视
call.addParameter(new QName(soapaction,"xxxxxx"), XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter(new QName(soapaction,"xxxx"), XMLType.XSD_STRING, ParameterMode.IN);
//设置返回类型,对方接口返回的json,我就用string接收了,自定义类型另贴一个代码
call.setReturnType(XMLType.XSD_STRING);
//调用方法并传递参数,没有参数的话: call.invoke(new Object[] { null});
String result = (String) call.invoke(new Object[]{"xxxxx","xx,xx"});
System.out.println(result);
} catch (Exception e) {
e.printStackTrace();
}
}
}
下面是处理自定义类型 处理自定义返回类型我用的是dom4j jar包: http://pan.baidu.com/s/1jGGfNZg
call.setReturnType(XMLType.XSD_SCHEMA);
//没有参数就写个null
Schema data = (Schema) call.invoke(new Object[] { null});
MessageElement[] datas = data.get_any();
for (int i = 0; i < datas.length; i++) {
SAXReader reader = new org.dom4j.io.SAXReader();
Document doc = reader.read(new ByteArrayInputStream(datas[i].toString().getBytes()));
/* 例:这是你调用方法返回的文档
* <ns:getXXXXXXX>
* <ns:return type="xx.xxx.xxx.xxxx.XXXXX">
* <ax21:objects type="xx.xxx.xxx.xxxx.XXXXX">
* <ax21:attribute>巴拉巴拉</ax21:attribute>
* </ax21:objects>
* </ns:return>
* </ns:getXXXXXXX>
*/
//这里的ns1:xxx 对应上面的ax21:objects
Node node = doc.selectSingleNode("ns1:xxx");
if (node != null) {
//这里就是获取object下的属性了
Node attribute= node.selectSingleNode("ns1:attribute");
System.out.println(attribute);
}
}
以上就是通过axis调用webservice的全部内容了,现在只是会点皮毛,工作之余还是要多加学习:)
(转)Java通过axis调用WebService的更多相关文章
- Java通过axis调用WebService
上午头给了我一个任务,让我对接别的公司的webservice接口,各种百度,看的头晕脑花的,终于通了,记录一下吧. jar包奉上,http://pan.baidu.com/s/1jSchC 包含:ax ...
- 9.Java通过axis调用WebService
转自:https://www.cnblogs.com/fu-yun/p/4553685.html 包含:axis.jar,commons-discovery.jar,commons-logging-1 ...
- Java通过axis调用.NET WebService
前面已经记录过通过axis调用webservice,昨天在对接.NET接口时,发现在传递参数时和一般的传参方法是不一样的,在接口方哥们的帮助下解决了.哈哈. import java.net.URL; ...
- Java调用WebService方法总结(4)--Axis调用WebService
Axis是比较常用的WebService框架,该项目在2006实现了最终版,后面就没有更新了.文中demo所使用到的软件版本:Java 1.8.0_191.Axis 1.4. 1.准备 参考Java调 ...
- 使用axis调用WebService服务端
由于项目中要调用其他公司的接口,研究了下axis调用webService这种方式,现将代码贴出,以备以后查阅: package com.xbq; import javax.xml.namespace. ...
- Java之HttpClient调用WebService接口发送短信源码实战
摘要 Java之HttpClient调用WebService接口发送短信源码实战 一:接口文档 二:WSDL 三:HttpClient方法 HttpClient方法一 HttpClient方法二 Ht ...
- Java 使用Axis实现WebService实例
在上一篇WebService实例中,基于jdk1.6以上的javax.jws 发布webservice接口.这篇博文则主要用eclipse/myeclipse 使用axis插件进行发布和调用WebSe ...
- axis调用webservice客户端开发
第一步:wsdl2Java.bat文件编写 Axis_Lib表示依赖的jar包路径 Output_Path表示生成的class路径 Package包名 还需要手动更改 -p %Package%表示we ...
- Java使用HttpURLConnection调用WebService(原始方法)
说明:使用Java原生的HttpURLConnection调用WebService可以免去引入SOA的框架,比如一些CXF框架等.可以使代码足够精简,比如对于一些只调用一两个接口的,这种方式是最适合的 ...
随机推荐
- windows 环境怎样恢复 (oracle 11g grid) ocr voting 损坏的集群
windows 环境怎样恢复 (oracle 11g grid) ocr voting 损坏的集群 oracle 11g 以后 ocr 能够放到 asm 磁盘上,而ASM的启动依赖于ocr和vo ...
- HDU 1010Tempter of the Bone(奇偶剪枝回溯dfs)
Tempter of the Bone Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Othe ...
- Java 类加载与初始化
Java系列笔记(1) - Java 类加载与初始化 目录 类加载器 动态加载 链接 初始化 示例 类加载器 在了解Java的机制之前,需要先了解类在JVM(Java虚拟机)中是如何加载的,这对后面理 ...
- dropDownList之"请选择",同时设置默认选项
dropDownList.Items.Insert(0, new ListItem("--请选择--", "-1"));dropDownList.Selecte ...
- AngularJS初始用之 中间件 connect .static 静态文件不能找到
学习心得,软件更新太快,学习不能照书本. 在学习搭建Nodejs服务器时,掉坑了啦,太坑了,对于什么都不知道的初学者,开门就是坑...,怎么坚持学下去... 还好,现在的世界很大,如果你发现自己不是犯 ...
- .NET程序员生活开始
不知不觉,开始踏入程序员生活了!加油吧.有关Session的好文章: 最近这两天被一个Web Farm环境下的Session处理问题虐得很痛苦,网上到处找解决方案,在无意中翻看到这篇文章,感觉很不错, ...
- leetcode Remove Duplicates from Sorted Array python
class Solution(object): def removeDuplicates(self,nums): if len(nums) <= 0: return 0 j=0 for i in ...
- [转载]CTreeCtrl 和 CListCtrl 控件(VC_MFC)
来源:http://www.cnblogs.com/kzloser/archive/2012/11/23/2783305.html Tree Control 控件(MSDN 链接) 说明: 树形控件是 ...
- 服务端NETTY 客户端非NETTY处理粘包和拆包的问题
之前为了调式和方便一直没有处理粘包的问题,今天专门花了时间来搞NETTY的粘包处理,要知道在高并发下,不处理粘包是不可能的,数据流的混乱会造成业务的崩溃什么的我就不说了.所以这个问题 在我心里一直是个 ...
- hdu 5652 India and China Origins 二分+bfs
题目链接 给一个图, 由01组成, 1不能走. 给q个操作, 每个操作将一个点变为1, 问至少多少个操作之后, 图的上方和下方不联通. 二分操作, 然后bfs判联通就好了. #include < ...