天气预报:
endpoint: http://www.webxml.com.cn/WebServices/WeatherWebService.asmx
wsdl: http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl
方法1:用axis2\bin\wsdl2java生成stub。
1、到http://ws.apache.org/axis2下载axis-binary.zip
2、设置Axis2的Home环境:
变量名:AXIS2_HOME
值:D:\axis2\axis2-1.4.1-bin\axis2-1.4.1 就是你下下来的安装目录。
3、进入命令行:出入 %AXIS2_HOME%\bin\wsdl2java -uri http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl -p cn.com.webxml -s -o stub
参数:uri ---你要生成JAVA代码需要的wsdl文件,可以是网上的,也可以是本地的。
-p 生成出的stub的包的生命 -o创建出的文件夹名。
完成后会在相对应的目录生成该JAVA文件,目录结构就是stub/src/cn.com.webxml
4、把该JAVA文件导入到ECLIPSE,注意eclipse的java project的buildpath加入%AXIS2_HOME%/lib下所有的JAR。不然会编译出错。
5、写自己的客户端
package com.citigroup.ws.client;
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 org.apache.axiom.soap.SOAP11Constants;
import org.apache.axis2.AxisFault;
import org.apache.axis2.Constants;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
import cn.com.webxml.WeatherWebServiceStub;
import cn.com.webxml.WeatherWebServiceStub.ArrayOfString;
public class WeatherTest {
/**
* @param args
* @throws Exception
* @throws AxisFault
*/
public static void main(String[] args) throws Exception {
//2nd method to get weather
WeatherWebServiceStub stub = new WeatherWebServiceStub();
WeatherWebServiceStub.GetWeatherbyCityName getWeatherByCityName = new WeatherWebServiceStub.GetWeatherbyCityName();
getWeatherByCityName.setTheCityName("上海");
WeatherWebServiceStub.GetWeatherbyCityNameResponse rs = stub
.getWeatherbyCityName(getWeatherByCityName);
ArrayOfString arry = rs.getGetWeatherbyCityNameResult();
String[] weatherArr = arry.getString();
for (String result : weatherArr) {
System.out.println(result);
}
}
方法2:不生成stub代码,通过OMElement 和endpoint访问
1、导入所需的axis2的jar
2、直接写客户端
package com.citigroup.ws.client;
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 org.apache.axiom.soap.SOAP11Constants;
import org.apache.axis2.AxisFault;
import org.apache.axis2.Constants;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
import cn.com.webxml.WeatherWebServiceStub;
import cn.com.webxml.WeatherWebServiceStub.ArrayOfString;
public class WeatherTest {
/**
* @param args
* @throws Exception
* @throws AxisFault
*/
public static void main(String[] args) throws Exception {
//first method to get weather
// WeatherTest s = new WeatherTest();
// s.getResult();
System.out.println("---------------------------");
}
private static EndpointReference targetEPR = new EndpointReference(
"http://www.webxml.com.cn/WebServices/WeatherWebService.asmx");
public void getResult() throws Exception {
ServiceClient sender = new ServiceClient();
sender.setOptions(buildOptions());
OMElement result = sender.sendReceive(buildParam());
System.out.println(result);
}
private static OMElement buildParam() {
OMFactory fac = OMAbstractFactory.getOMFactory();
OMNamespace omNs = fac.createOMNamespace("http://WebXml.com.cn/", "");
OMElement data = fac.createOMElement("getWeatherbyCityName", omNs);
OMElement inner = fac.createOMElement("theCityName", omNs);
inner.setText("成都");
data.addChild(inner);
return data;
}
private static Options buildOptions() {
Options options = new Options();
options.setSoapVersionURI(SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI);
options.setAction("http://WebXml.com.cn/getWeatherbyCityName");
options.setTo(targetEPR);
// options.setProperty 如果不是通过代理上网,此句可省
// options.setProperty(HTTPConstants.PROXY, buildProxy());
options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
return options;
}
}
分享到:
相关推荐
总结来说,Apache Axis2是强大的Web服务框架,提供了两种部署方式,分别是二进制包和WAR文件,适应不同的开发和部署需求。理解这两个包的用途和内部结构对于有效利用Axis2来创建和部署Web服务至关重要。
标题中的"axis2-idea-plugin-1.7.9.zip_axis2_axis2-idea-plugin_idea导入axis2_"提到了几个关键元素,分别是"axis2"、"idea-plugin"和"idea导入axis2",这暗示了这个压缩包是用于在IntelliJ IDEA这款集成开发环境...
axis2c-bin-1.6.0-linux.tar.gz axis2c-bin-1.6.0-win32.zip axis2c-src-1.6.0.tar.gz axis2c-src-1.6.0.zip 加md5
1. **创建WebService**:在Axis2中,可以通过编写一个简单的Java类并暴露其方法作为Web服务接口。这个类通常会遵循SOAP协议,定义服务操作。例如,你可以创建一个名为`HelloWorldService`的类,包含一个`sayHello`...
总的来说,使用Axis2客户端调用WebService接口是一种常见的开发实践,通过精简jar包可以优化项目的体积,提高部署效率。理解这个过程并掌握如何精简jar包,对于任何涉及到Web服务的开发工作都是十分有益的。
6. **使用方法**:安装插件后,在Eclipse中可以通过“新建”-> "其他" -> "Axis2" 来找到由这两个插件提供的各种项目模板。例如,可以创建新的Axis2服务项目,或者从WSDL文件生成客户端代码。此外,还可以使用插件...
标题中的"axis2-eclipse-codegen-plugin-1.6.2和axis2-eclipse-service-plugin-1.6.2"指的是两个与Apache Axis2相关的Eclipse插件:Axis2代码生成插件和Axis2服务插件,它们是版本1.6.2的。Apache Axis2是一个流行的...
webService 生成插件axis2- idea-plugin-1.7.8
Java Axis Web服务示例(`[JAVA]-Axis-Webservice-Demo`)提供了发布和调用Web服务的实际操作步骤。通过学习和实践这个示例,开发者可以更好地掌握使用Axis创建Web服务的技术,理解Web服务的基本原理,以及如何通过...
目前axis2最高版本是2.0以上的版本,但是eclipse和myeclipse都不支持,无奈只能使用低版本的插件1.6.3;经实验,可以安装成功; 安装方法:右键解压到当前文件夹,Copy解压的文件到eclipse安装目录dropins下,重启...
6. **MTOM与SwA优化**: Axis2支持MTOM(Message Transmission Optimization Mechanism)和SwA(SOAP with Attachments),这两种机制可以有效地处理大型二进制数据,提高传输效率。 7. **安全特性**: Axis2集成了...
axis2 webservice 服务端jar包: -->axis2-kernel-1.6.1.jar -->axis2-spring-1.6.1.jar -->axis2-transport-http-1.6.1.jar -->XmlSchema-1.4.7.jar -->wsdl4j-1.6.2.jar -->axiom-api-1.2.12.jar -->axiom...
总结来说,Spring集成Axis2实现Web服务涉及到Spring的IoC容器、服务的创建和发布、以及客户端的调用等多个环节。了解并掌握这些知识点,对于开发高质量的Web服务应用至关重要。在实际项目中,务必确保所有必要的库...
Axis2 支持异步调用,可以实现异步调用 WebService,提高系统的性能和可扩展性。 8. Axis2 的 Module 模块: Axis2 提供了模块化的设计,可以将 WebService 分解成多个模块,实现了模块化的开发和部署。 9. Axis...
标题中的"axis-bin-1_4.zip"是一个与 Axis1 相关的压缩包,Axis1 是一个开源的 Java 库,主要用于创建、部署和使用 Web Services。这个版本(1.4)是 Axis 的一个稳定版本,包含了 Axis 框架的可执行文件和其他必要...
axis2-1.6.2.zip, windows axis2工具,根据 WSDL生成java文件。 1、axis2客户端下载地址:http://mirror.esocc.com/apache//axis/axis2/java/core/1.6.2/axis2-1.6.2-bin.zip; 2、下载解压在D:\Work_Program_...
共四个文件,都是最先版的,希望可以帮助大家。axis2-eclipse-service-archiver-wizard和axis2-eclipse-codegen-wizard和axis2-1.6.1-bin和axis2-1.6.1-war
axis-jaxrpc-1.4.jar jaxrpc.jar webservice java工具类jar包。
标题中的"axis2-1.4.1-bin.zip"和"axis2-1.4.1-war.zip"指的是Apache Axis2的两个不同版本的发行包,分别代表了Axis2的可执行二进制版本和Web应用程序版本。Apache Axis2是一个高度可扩展且功能强大的Web服务引擎,...