SOAP得Axis2的使用(一)create client code
首页
http://ws.apache.org/axis2/
create client guide
http://ws.apache.org/axis2/1_5_1/userguide-creatingclients.html#createclients
拷贝下载的axis2到工作目录,配置
AXIS2_HOME=F:\book\opensource\axis2\axis2-1.5.1
然后在命令行里面输入
wsdl2java -help
就看到很多参数,我具体使用的如下:
wsdl2java -uri http://192.168.1.149:8080/easyaxis/services/WeatherService?wsdl -o ./ -p com.sillycat.easycxfclient -t
其中
-uri 指明了WSDL文件的路径
-o 指明了生成文件的路径
-p 指明了生成的包名
-t 生成了测试用例,我用来先测试验证一下的:)
查看了一下测试用例里面的代码,WeatherServiceTest.java,构造stub,然后通过stub调用WS
com.sillycat.easycxfclient.WeatherServiceStub stub =
new com.sillycat.easycxfclient.WeatherServiceStub();//the default implementation should point to the right endpoint
com.sillycat.easycxfclient.WeatherServiceStub.SetWeather setWeather10=
(com.sillycat.easycxfclient.WeatherServiceStub.SetWeather)getTestObject(com.sillycat.easycxfclient.WeatherServiceStub.SetWeather.class);
stub.setWeather(setWeather10);
仔细看了一下WeatherServiceStub.java这个生成的CODE里面的代码,里面的构造函数可以传递endpoint的地址,这样也就比较灵活了:
public WeatherServiceStub(java.lang.String targetEndpoint) throws org.apache.axis2.AxisFault {
this(null,targetEndpoint);
}
为了以后生成代码方便,不用每次都去open一个cmd窗口,所以我看了一下wsdl2java.bat里面的脚本,发现它调用的是这个类:
org.apache.axis2.wsdl.WSDL2Java
的main方法。另外要使用这个类,需要先倒入这个JAR:
<dependency org="org/apache/axis2" name="axis2-codegen" rev="1.5.1" />
<dependency org="org/apache/axis2" name="axis2-adb-codegen" rev="1.5.1" />
我自己写了个简单的JAVA APP去调用WSDL2Java,代码如下GenerateJavaFromWsdl.java:
package com.sillycat.gen;
import org.apache.axis2.wsdl.WSDL2Java;
public class GenerateJavaFromWsdl {
public static void main(String[] args){
StringBuffer sb = new StringBuffer();
sb.append("-uri http://192.168.1.149:8080/easyaxis/services/WeatherService?wsdl ");
sb.append("-o E:/work/easyaxisweather/ ");
sb.append("-p com.sillycat.axis2.weather.client");
try {
WSDL2Java.main(sb.toString().split(" "));
} catch (Exception e) {
e.printStackTrace();
}
}
}
我的测试用例WeatherServiceTest.java:
@Test
public void weatherServiceStub() throws RemoteException {
String url = "http://192.168.1.149:8080/easyaxis/services/WeatherService.WeatherServiceHttpSoap12Endpoint/";
WeatherServiceStub stub = null;
stub = new WeatherServiceStub(url);
// set weather
SetWeather setWeather = new SetWeather();
com.sillycat.axis2.weather.client.WeatherServiceStub.Weather weather = new com.sillycat.axis2.weather.client.WeatherServiceStub.Weather();
weather.setTemperature((float) 39.3);
weather.setForecast("Cloudy with showers");
weather.setRain(true);
weather.setHowMuchRain((float) 4.5);
setWeather.setWeather(weather);
stub.setWeather(setWeather);
// get weather
GetWeatherResponse result = stub.getWeather();
com.sillycat.axis2.weather.client.WeatherServiceStub.Weather result_weather = result
.get_return();
// Displaying the result
System.out.println("Temperature : "
+ result_weather.getTemperature());
System.out.println("Forecast : "
+ result_weather.getForecast());
System.out.println("Rain : "
+ result_weather.getRain());
System.out.println("How much rain (in inches) : "
+ result_weather.getHowMuchRain());
}
其实发现,这种方式去调用webservice,其实也不必API的方式麻烦,也是一个很好用的方法。呵呵。
分享到:
相关推荐
Axis2是一款开源的Web服务框架,主要用于构建基于SOAP协议的服务端应用。它支持多种传输协议(如HTTP、JMS等)以及多种数据编码方式(如XML、JSON等)。Axis2在Java平台上提供了强大的功能和灵活性,使得开发人员...
通过以上步骤,AXIS2和IDEA的结合使得SOAP服务的开发变得高效且直观。了解如何正确配置和使用AXIS2是Java开发者在处理SOAP通信时的关键技能,这有助于提高开发效率,并确保服务的稳定性和可靠性。
- `TestClient.java`通常是生成的Stub类中的一个示例客户端程序,展示了如何使用这个客户端来调用SOAP服务。 - 文件可能包含如下内容:初始化Stub对象、设置服务URL、调用服务方法、处理返回结果等步骤。 - 具体...
总结起来,这个名为"client_axis"的压缩包提供了一个基于Apache Axis实现的Web服务客户端,它可以用来与符合SOAP协议的Web服务进行交互。开发人员只需要正确配置,即可通过该客户端调用远程服务,实现跨系统、跨平台...
本教程将深入探讨如何在Java中使用Axis2构建一个包含SOAP Header验证的客户端。 首先,理解SOAP Header至关重要。SOAP Header是SOAP消息的一部分,用于传递非处理信息,如认证、交易、安全等。与SOAP Body不同,...
Axis是Apache软件基金会开发的一个开源工具,专门用于实现SOAP协议,它提供了在Java平台上创建和使用Web服务的能力。本实例主要探讨了使用Axis进行SOAP Web服务发布的三种方法以及如何进行调用。 1. **命令行发布...
总结起来,SOAP与AXIS2是Web服务领域的重要组成部分,通过AXIS2,你可以轻松地创建、部署和使用SOAP服务。本教程将帮助初学者快速上手,通过实例实践,掌握AXIS2的基本用法,为后续的Web服务开发打下坚实基础。
标题 "Axis2_Code_Generator.zip" 暗示了这是一个与Apache Axis2相关的代码生成工具。Apache Axis2是Java环境中广泛使用的Web服务框架,它允许开发者创建、部署和管理Web服务。这个压缩包可能包含了用于自动生成Axis...
OMElement是Apache Axis2中的一个关键类,用于构建和操作XML文档,它是构建SOAP消息的基础。至于上传下载实现,这可能涉及到文件传输的场景,客户端可能需要将文件数据转换为SOAP消息的一部分,服务端则负责接收和...
在IT行业中,当我们谈论"axis生成client的必备jar"时,我们实际上是在讨论使用Apache Axis框架来创建Web服务客户端的过程。Apache Axis是一个开源工具,它允许开发者通过Java语言轻松地创建、部署和使用Web服务。在...
标题中的“Axis2 WebService Client plugin”指的是一个用于MyEclipse集成开发环境的插件,其主要功能是帮助开发者创建和使用Axis2 Web服务客户端。Axis2是Apache软件基金会的一个开放源码项目,是一个高性能、灵活...
Apache Axis 是一个开源的Web服务开发工具,它允许开发者创建和部署SOAP(简单对象访问协议)服务。SOAP是一种用于在Web上传输结构化信息的协议,通常与Web服务结合使用。Tomcat则是一个流行的Java Servlet容器,常...
Axis2 code generator + backport-util-concurrent-3.1.jar 版本:1.3.0 解压缩后,放到eclipse的plugins文件夹下。 重新打开eclipse,new->other 就能看到插件了 出现这个错误的话: An error ocurred while ...
2. **Axis2Client**:可能包含了客户端的代码,如生成的服务代理类、调用服务的示例程序等。 总的来说,这个压缩包提供了一个完整的基于Axis2的Web服务实现示例,包括服务端创建服务和客户端调用服务的所有必要组件...
Apache Axis2是Apache软件基金会开发的一个SOAP(简单对象访问协议)引擎,它是一个完整的Web服务框架。该框架提供了一种高效、灵活的方式来创建和部署Web服务。Axis2的核心功能包括: 1. **SOAP处理**:Axis2能够...
axis,soap,rpc最新API axis,soap,rpc最新API axis,soap,rpc最新API axis,soap,rpc最新API axis,soap,rpc最新API axis,soap,rpc最新API
标题“AxisClient”指的是Apache Axis的一个客户端工具,它在Java世界中被广泛用于构建和部署Web服务。Apache Axis是开源的SOAP(简单对象访问协议)处理框架,它为开发人员提供了一种简单的方法来实现SOAP服务,...
Axis2是Apache组织开发的一个开源Web服务引擎,它是基于SOAP协议的,用于构建和部署Web服务。Axis2提供了高性能、灵活且模块化的架构,支持多种编程模型,如Java代码、WSDL第一和第二样式。它包含了处理SOAP消息、...
标题 "Axis2_Code_Generator Axis2_Service_Archiver" 指的是Apache Axis2框架中的两个关键工具,用于简化Web服务开发过程。Apache Axis2是一个高效、可扩展且灵活的Web服务引擎,它构建在Apache Axis之上,提供了更...
"axis2-1.7.9.zip" 是一个包含Apache Axis2 1.7.9版本的二进制发行版的压缩文件。Apache Axis2是一个成熟的、高性能的Web服务引擎,用于创建和部署Web服务。它是Apache SOAP项目的下一代,专注于提供更强大的功能和...