package cn.rx.oamp.util;
import java.net.MalformedURLException;
import java.rmi.RemoteException;
import java.util.Date;
import javax.xml.namespace.QName;
import javax.xml.rpc.ServiceException;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.ser.ArrayDeserializerFactory;
import org.apache.axis.encoding.ser.ArraySerializerFactory;
import org.apache.axis.encoding.ser.Base64DeserializerFactory;
import org.apache.axis.encoding.ser.Base64SerializerFactory;
import org.apache.axis.utils.JavaUtils;
import cn.rx.oamp.pagemodel.ProgramPag;
public class CallWebServiceUtil {
/**
* 取得webservice操作
*
* @param message
* :传值数组
* @param method
* :webservice 方法名
* @param url
* :wsdl路径
* @param nameSpace
* :webservice命名空间
* @param parameter
* :webservice参数数组
* @return
*/
public static Object getWebService(String[] message, String method,
String url, String nameSpace, String[] parameter) {
Service service = new Service();
Object obj = null;
Call call;
try {
// 创建连接
call = (Call) service.createCall();
// 设置webservice地址
call.setTargetEndpointAddress(new java.net.URL(url));
// 设置调用的方法名(包含方法所在的命名空间)
call.setOperationName(new QName(nameSpace, method));
// 设置调用时需要传入的参数(包含参数所属方法所对应的命名空间)
call.addParameter(new QName(nameSpace, parameter[0]),
org.apache.axis.encoding.XMLType.XSD_STRING,
javax.xml.rpc.ParameterMode.IN);
call.addParameter(new QName(nameSpace, parameter[1]),
org.apache.axis.encoding.XMLType.XSD_STRING,
javax.xml.rpc.ParameterMode.IN);
call.setUseSOAPAction(true);
// 设置返回参数类型
call.setReturnType(org.apache.axis.Constants.XSD_STRING);
// 设置操作方法完整路径(包含命名空间与方法名)
call.setSOAPActionURI(nameSpace + method);
// 执行调用过程并传入调用时所需参数
obj = call.invoke(new Object[] { message[0], message[1] });
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ServiceException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return obj;
}
}
说明:此工具类支持基本数据类型传递的webservice调用复杂类型需要自己封装pojo,且此工具类需要axis2jar包支持
分享到:
相关推荐
Java Axis 直接调用webservice 接口工具类, 无需根据wsdl编译客户端,需要axis相关包,测试使用axis 1.4, 附demo引入axis包后直接可以测试;
Java和Axis2是开发Web服务客户端的重要工具,用于调用基于SOAP协议的Web服务。本文将深入探讨如何利用Java和Axis2库来实现这一功能,同时结合提供的代码示例进行详细解析。 首先,Web服务是一种通过网络进行通信的...
2. **使用Axis2的wsdl2java工具**:这个工具可以从WSDL文件生成Java客户端代码,包括服务代理类和服务接口。运行`wsdl2java`命令时,需要提供WSDL的URL或本地路径。生成的代码可以导入到项目中,方便调用服务。 3. ...
标题中的“Java通过Axis调用天气预报的WebService”是指使用Java编程语言,通过Apache Axis库来访问和使用公开的天气预报Web服务。Apache Axis是一个开放源码的SOAP(简单对象访问协议)工具包,它允许开发者创建和...
AXIS2远程调用WebService是Java开发者在进行分布式服务交互时常用的一种技术。本文将详细介绍如何使用Eclipse集成开发环境和AXIS2框架创建并调用WebService。首先,我们需要准备以下基础工具: 1. Eclipse IDE:这...
总的来说,使用Axis2客户端调用WebService接口是一种常见的开发实践,通过精简jar包可以优化项目的体积,提高部署效率。理解这个过程并掌握如何精简jar包,对于任何涉及到Web服务的开发工作都是十分有益的。
2. **创建Stub**:调用WebService接口通常需要通过Stub(代理类)进行,这可以通过Axis2的wsdl2java工具生成。该工具会根据WebService的WSDL(Web Service Description Language)文件生成Java客户端代码。在命令行...
这可以通过Axis的wsdl2java工具完成。运行该工具并指定WSDL文件路径,它将自动生成Java客户端类,这些类包含了调用WebService的方法。 2. **配置连接信息**:在生成的stub类中,我们需要设置服务端的URL以及可能的...
标题“使用axis轻松调用Webservice”涉及到的是在IT领域中如何通过Apache Axis工具来便捷地与Web服务进行交互。Apache Axis是一个开放源代码的Java框架,它允许开发者创建、部署和使用Web服务。这个标题暗示了我们将...
2. **创建WebService**:在Spring中,可以通过定义一个实现了特定接口的类来创建Web服务。这个接口通常对应于服务的WSDL契约,而实现类则包含了实际的服务逻辑。 Axis2提供了`ServiceStub`类,可以帮助我们与服务...
本文将深入探讨如何使用Axis2来动态地调用Web Service,并通过分析`WebServiceInvoker.java`这个文件来理解其实现原理。 1. **Java动态调用Web Service**: 在Java中,动态调用Web Service主要涉及到JAX-WS(Java ...
Java调用WebService是Web服务交互的一种常见方式,而Axis2是一个高效的、可扩展的Web服务框架,它在Java世界中广泛用于创建和消费Web服务。本文将深入探讨使用Axis2.jar包来调用WebService的相关知识点。 一、Axis2...
2. **生成Java客户端代码**:使用Axis的wsdl2java工具,根据.WSDL文件生成Java客户端代码。这将包括一系列的Java类,它们封装了对WebService的调用逻辑。 3. **配置Axis客户端**:设置必要的连接参数,如WebService...
2. **生成客户端代理类**:使用Axis的`wsdl2java`工具,从Web Service的WSDL(Web Service描述语言)文件生成Java客户端代理类。这一步可以通过命令行或者Ant脚本完成。 3. **配置HTTPS**:在生成的客户端代码中,...
3. **部署服务**:使用Axis2的工具,如wsdl2java,将WSDL文件转换为Java代码,然后将服务类打包成服务存根(Stub)和 skeletons。 4. **启动服务**:通过Axis2的服务器实例化服务,使其监听特定端口,等待客户端请求...
在Java中使用Axis调用Webservice,首先需要引入必要的库文件。这些库通常包括axis.jar、axis-wsdl4j.jar、commons-discovery.jar、commons-logging.jar、jaxrpc.jar和wsdl4j.jar等。这些库包含了处理SOAP消息、解析...
- 服务发布后,可以通过Axis2的wsdl2java工具,根据服务的WSDL(Web Service Description Language)文件生成客户端所需的Java类(stubs)。 - 这些类将封装调用Web Service的具体方法,简化了调用流程。 4. **...
Java Axis2 WebService 实现详解 在Java世界中,创建和使用Web服务是一个常见的任务,而Axis2是Apache软件基金会开发的一个高效的Web服务框架。它提供了丰富的功能,使得开发、部署和管理Web服务变得简单易行。本篇...
### Java WebService 简单实例 方式二(axis1直接调用方式) #### 背景介绍 在软件开发领域,特别是在企业级应用中,Web服务作为一种标准的技术规范被广泛采用,它允许不同系统间进行通信与数据交换。Java Web ...
Apache Axis2是Java平台上的一款强大的Web服务开发工具,它提供了高效、灵活且可扩展的环境来构建和部署Web服务。这个例子可能是为了帮助开发者理解和实践如何在实际项目中运用Axis2来构建Web服务。 描述中的“一个...