axis2 java.net.url_axis,axis2调用.net的webservice
package testClick.src.test;import javax.xml.namespace.QName;import org.apache.axiom.om.OMAbstractFactory;import org.apache.axiom.om.OMElement;import org.apache.axiom.om.OMFactory;import org.apache.axiom.om.OMNamespace;import
今天一个朋友咨询java调用.net的webservice功能,折腾了2个小时,也都折腾出来了,贴出来,希望用到的朋友少走弯路
1、axis调用.net的webservicepackage test;
import java.net.URL;
import javax.xml.namespace.QName;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;
import javax.xml.rpc.ParameterMode;
public class Test {
public static void test() throws Exception{
Service service = new Service();
Call call = null;
try {
call = (Call) service.createCall();
call.setTargetEndpointAddress(new URL("http://www.webxml.com.cn/WebServices/WeatherWebService.asmx"));
call.setOperationName(new QName("http://WebXml.com.cn/","getWeatherbyCityName"));
call.addParameter(new QName("http://WebXml.com.cn/", "theCityName"),XMLType.SOAP_VECTOR,ParameterMode.IN);
call.setReturnType(XMLType.SOAP_VECTOR);
call.setUseSOAPAction(true);
call.setSOAPActionURI("http://WebXml.com.cn/getWeatherbyCityName");
System.out.println(call.invoke(new Object[]{"广州"}));
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* @param args
*/
public static void main(String[] args) throws Exception{
test();
}
}
2、axis2调用.net的webservice
axis2调用不需要写那么多,按照下面的步骤,一步一步来,简单你都想象不到
1、下载axis2(到apache官网下载www.apache.org)
2、我下载的是axis2-1.5-bin.zip,解压到当前文件夹
3、进入bin目录(F:\study\java\service\axis2\axis2-1.5\bin)
4、打开cmd,进入第3步的bin目录,输入wsdl2java.bat -uri http://www.webxml.c
om.cn/WebServices/WeatherWebService.asmx?wsdl,回车
5、之后会在bin目录下生成一个src目录,将src目录下的两个类考到eclipse开发目录下
6、建一个测试类Test,代码如下
import cn.com.webxml.WeatherWebServiceStub;
import cn.com.webxml.WeatherWebServiceStub.ArrayOfString;
import cn.com.webxml.WeatherWebServiceStub.GetWeatherbyCityName;
public class Test {
public static void test1(){
try{
WeatherWebServiceStub stub = new WeatherWebServiceStub();
stub._getServiceClient().getOptions().setProperty(
org.apache.axis2.transport.http.HTTPConstants.CHUNKED,
Boolean.FALSE);
GetWeatherbyCityName city = new GetWeatherbyCityName();
city.setTheCityName("广州");
ArrayOfString array = stub.getWeatherbyCityName(city).getGetWeatherbyCityNameResult();
String[] str = array.getString();
for(String s : str){
System.out.println(s);
}
}catch(Exception e){
e.printStackTrace();
}
}
/**
* @param args
*/
public static void main(String[] args) throws Exception{
test1();
}
}
需要注意的是这个类 GetWeatherbyCityName,这个本来是.net webservice中的一个方法,如下
POST /WebServices/WeatherWebService.asmx HTTP/1.1
Host: www.webxml.com.cn
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://WebXml.com.cn/getWeatherbyCityName"
string
用axis2生成java代码后,Instantaneous Transference Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 6367 Accepted: 1439 Description It was long ago when we played the game Red Alert. There is a magic function for the game objects which is called inst会自动生成一个对应的对象,webservice需要传递的参数,可以通过对这个对象赋值操作完成,如上面,我要查广州的天气,就设置为city.setTheCityName("广州");
注意,关键的地方
由于.net webservice中返回的是ArrayOfString,java中没有这个对象,所以axis2会自动生成这个对象,然后转换成对应的数组即可,如String[] str = array.getString();在axis版本中,使用的是返回类型,但是返回类型设置其他的比如String等都会报错,只能设置成VECTOR,即call.setReturnType(XMLType.SOAP_VECTOR),如果只返回一个字符串,可以直接使用STRING;这样才能确保返回正确。
比较两个版本,还是觉得axis2使用方便
axis2 java.net.url_axis,axis2调用.net的webservice相关推荐
- java .net webservice_Java客户端调用.NET的WebService实例
项目需要去调用.NET的WebSrevice,本身是Java,研究了半天,终于有些头绪,记下来. 1,新建.NET WebService.只在原方法上加上一个string类型的参数str [WebMe ...
- asmx用java怎么调_java调用asmx的webservice
eclipse插件(axis2 tool--Code Generator Wizard)实现Java调用 asmx 的Web Service 一个获得天气情况及国家城市的 Web Service ht ...
- 关于安卓调用C#的WebService上传图片问题(不使用ksoap2)
============问题描述============ 小弟初学安卓开发.最近需要做一个图片上传的功能. 我是用java开发安卓,调用C#的WebService.在网上找到一大堆资料,几乎全部是用k ...
- java axis2 教程_webservice的Axis2入门教程java版
本文转自百度文库 Axis2是一套崭新的WebService引擎,该版本是对Axis1.x重新设计的产物.Axis2不仅支持SOAP1.1和SOAP1.2,还集成了非常流行的REST WebServi ...
- 在Eclipse中通过axis2调用网络免费webService服务
上上一篇blog讲到了如何用axis2建立webService(sayHello),然后调用的方法. http://www.cnblogs.com/Jason_Chan/archive/2013/04 ...
- axis2 axiom_深入了解Axis2:AXIOM
还有另一种文档模型? Apache Axis2 1.1已发布,它为长期运行的Apache系列Web服务框架的爱好者提供了激动人心的新功能. 我们将在以后的文章中介绍Axis2本身,但是本文将深入探讨A ...
- org.apache.axis2.AxisFault: org.apache.axis2.databinding.ADBException: Unexpected subelement profile
原创:转载请注明出处 1.异常情况 org.apache.axis2.AxisFault: org.apache.axis2.databinding.ADBException: Unexpected ...
- WebService之Axis2系列教程(一)Axis2的下载、安装和使用
Axis2是目前比较流行的WebService引擎.WebService被应用在很多不同的场景.例如,可以使用WebService来发布服务端 Java类的方法,以便使用不同的客户端进行调用.这样可以 ...
- WebService大讲堂之Axis2(9):编写Axis2模块(Module)
Axis2可以通过模块(Module)进行扩展.Axis2模块至少需要有两个类,这两个类分别实现了Module和Handler接口.开发和使用一个Axis2模块的步骤如下: 1. 编写实现Module ...
最新文章
- 大数据:Hive和Hbase的区别于优势
- WCF 调用webservice
- python编写篮球_Python编程2——Python实现计算篮球比赛是否领先安全的程序
- 1947-2021 NBA总冠军次数排行榜
- What Every Computer Programmer Should Know About Windows API, CRT, and the Standard C++ Library
- spring boot 教程(三)配置详解
- 类/对象/构造函数/析构函数
- 【eoeAndroid社区索引】android数据存储之SQLite教程实例汇总
- orbSLAM2 之 追踪参考关键帧
- UR3机器人运动学分析之正运动学分析
- 2020神舟几号发射_今年将发射神舟十一号载人飞船 2020年将建成载人空间站
- 最大子矩阵问题----悬线法
- 华为WATCH D血压管理计划怎么用
- Windows易升升级指南(解决大版本间更新95%的问题)
- wakeup_in休眠唤醒
- 分享三种在Excel表格中自动求和的方法
- phyton题库+解析
- Robotic KDL library
- 灵媒阅读开始自学通灵
- 北京工作居住证办理流程
热门文章
- 通配符 不是jpg 结尾文件_Struts(十九)- 使用使用通配符匹配
- 微型计算机,单片机和单板机是,9、微型计算机、单片机和单板机是()
- python数学函数_「分享」关于Python整理的常用数学函数整理
- 厉害了,在Pandas中用SQL来查询数据,效率超高
- 牛逼!Python函数和文件操作(长文系列第3篇)
- Python可变数据类型高效编程
- 作为程序员,你吃过哪些数学的亏?
- php 链接excel表格数据,php 怎么把数据导出到excel表格?php 连接 excel表格数据库数据...
- 画图软件怎么做性能测试,软件性能测试能力提升解决方案.pdf
- 从零开始数据科学与机器学习算法-数据预处理与基准模型-01