`
shihuan830619
  • 浏览: 580206 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

在Java代码中用Axis2调用DotNet语言的WebService程序

    博客分类:
  • J2EE
阅读更多
package com.shihuan.ymail.common.utils.wsutil;

import java.util.List;

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 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.rpc.client.RPCServiceClient;

import com.shihuan.mypro.common.utils.exception.ParamException;

public class WsClientUtil {
	
	/**
	 * 功能: 调用某个DotNet语言的WebService的服务
	 * @param serverurl 访问WebService服务端的Url地址  (例如: http://app.shihuan.com.cn/MailWebService/MailWebService.asmx)
	 * @param soapAction WebService服务端的soapAction (例如: http://192.168.0.1/MailWebService/MailWebService.asmx/AccessCheck)
	 * @param omNamespace WebService服务端的命名空间  (例如: http://192.168.0.1/MailWebService/MailWebService.asmx)
	 * @param methodname WebService服务端的某个方法名字  (例如: AccessCheck)
	 * @param listParams WebService服务端要接受的参数
	 * @return result OMElement类型在xml格式内容
	 * @throws AxisFault  
	 * @throws ParamException 
	 */
	public static OMElement getDotNetResult(String serverurl, String soapAction, String omNamespace, String methodname, List<String[]> listParams) throws AxisFault, ParamException {
		
		if("".equals(serverurl) || "".equals(soapAction) || "".equals(omNamespace) || "".equals(methodname) || listParams==null){
			throw new ParamException(String.format("调用WebService服务的参数不合法! serverurl=%1$s, soapAction=%2$s, omNamespace=%3$s, methodname=%4$s", serverurl, soapAction, omNamespace, methodname));
		}
		
		RPCServiceClient serviceClient;
		try {
			serviceClient = new RPCServiceClient();
			
			EndpointReference targetEPR = new EndpointReference(serverurl);
			Options options = new Options();
	        options.setSoapVersionURI(SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI);
	        options.setAction(soapAction);
	        options.setTo(targetEPR);
	        //options.setProperty(propertyKey, property)
	        // enabling MTOM in the client side
	        // options.setProperty(Constants.Configuration.ENABLE_MTOM, Constants.VALUE_TRUE);
	        options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
	        serviceClient.setOptions(options);
	        
	        OMFactory fac = OMAbstractFactory.getOMFactory();
	        OMNamespace omNs = fac.createOMNamespace(omNamespace, "");
	        OMElement data = fac.createOMElement(methodname, omNs);
	        
	        OMElement tmpObj = null;
	        for (String[] arrs : listParams) {
	        	tmpObj = fac.createOMElement(arrs[0], omNs);
	        	tmpObj.setText(arrs[1]);
	        	data.addChild(tmpObj);
			}
	        
	        OMElement result = serviceClient.sendReceive(data);
	        
//	        System.out.println(result);
	        
	        return result;
	        
		} catch (AxisFault e) {
			throw e;
		}
        
    }
	
	
	public static void main(String[] args) {
		try {
			List<String[]> listParams = new ArrayList<String[]>();
			String[] p1 = new String[]{"userName", "easeye"};
			listParams.add(p1);
			String[] p2 = new String[]{"password", "123456"};
			listParams.add(p2);
			
			WsClientUtil.getDotNetResult("http://app.shihuan.com.cn/MailWebService/MailWebService.asmx", "http://192.168.0.1/MailWebService/MailWebService.asmx/AccessCheck", "http://192.168.0.1/MailWebService/MailWebService.asmx", "AccessCheck", listParams);
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
}
分享到:
评论

相关推荐

    Java+Axis2调用Web Services 网络接口

    总的来说,Java和Axis2的结合提供了一种强大而灵活的方式来调用Web服务,允许开发者轻松地集成远程功能到自己的应用程序中。通过理解这些概念和实践,你可以更好地利用Web服务接口,提升应用的扩展性和互操作性。

    java 通过axis调用天气预报的webservice

    标题中的“Java通过Axis调用天气预报的WebService”是指使用Java编程语言,通过Apache Axis库来访问和使用公开的天气预报Web服务。Apache Axis是一个开放源码的SOAP(简单对象访问协议)工具包,它允许开发者创建和...

    java axis调用第三方webservice程序demo

    在Java中使用Axis调用Webservice,首先需要引入必要的库文件。这些库通常包括axis.jar、axis-wsdl4j.jar、commons-discovery.jar、commons-logging.jar、jaxrpc.jar和wsdl4j.jar等。这些库包含了处理SOAP消息、解析...

    axis2发布webservice和调用axis2服务接口

    在IT行业中,Axis2是Apache软件基金会开发的一个用于构建Web服务和Web服务客户端的框架,主要基于Java语言。本文将详细讲解如何使用Axis2来发布Web服务以及如何生成客户端代码来调用这些服务。 首先,让我们了解...

    java客户端调用webservice所调用的axis1.4包和方法调用

    本方法是用axis1.4技术,实现java客户端调用webservice。已经可实现过可行的,如果不行可加我QQ号302633进行详细解析。

    Axis2调用SAP Webservice源码

    Axis2调用SAP Webservice源码 使用Axis2 org.apache.axis2.eclipse.codegen.plugin_1.6.2.jar插件生成本地Java Proxy同事生成同步和异步调用测试用例 更重要的是配备详细文档,实乃Java与SAP集成是宝典!

    Java Axis 直接调用webservice 接口工具类

    Java Axis 直接调用webservice 接口工具类, 无需根据wsdl编译客户端,需要axis相关包,测试使用axis 1.4, 附demo引入axis包后直接可以测试;

    java 调用https webservice实例及axis包

    2. **生成客户端代理类**:使用Axis的`wsdl2java`工具,从Web Service的WSDL(Web Service描述语言)文件生成Java客户端代理类。这一步可以通过命令行或者Ant脚本完成。 3. **配置HTTPS**:在生成的客户端代码中,...

    java axis 调用C# webService所需的jar包

    6. jaxrpc.jar:Java API for XML-RPC(JAX-RPC)是Java中处理SOAP请求的API,虽然Axis2已经不再依赖它,但在早期版本的Axis中,它是必需的。 7. wsdl4j.jar:这个库用于解析WSDL文件。 安装这些jar包后,你需要...

    Axis2教程和java调用webservice的各种方法总结

    标题“Axis2教程和java调用webservice的各种方法总结”表明了本文档主要聚焦于两个核心内容:一是Axis2框架的使用教程,二是Java语言调用Web服务的不同方法的综合概述。 描述中的“Axis2教程”暗示了会详细讲解Axis...

    java调用webservice的axis2.jar包

    Java调用WebService是Web服务交互的一种常见方式,而Axis2是一个高效的、可扩展的Web服务框架,它在Java世界中广泛用于创建和消费Web服务。本文将深入探讨使用Axis2.jar包来调用WebService的相关知识点。 一、Axis2...

    axis2客户端调用webService接口,精简jar包

    在IT行业中,Web服务是应用程序之间进行通信的一种标准方法,而Axis2是Apache软件基金会开发的一个Web服务框架,专门用于创建和消费Web服务。本文将深入探讨如何使用Axis2客户端调用WebService接口,并且会特别关注...

    Java动态调用webService,axis2动态调用webService

    本文将深入探讨如何使用Axis2来动态地调用Web Service,并通过分析`WebServiceInvoker.java`这个文件来理解其实现原理。 1. **Java动态调用Web Service**: 在Java中,动态调用Web Service主要涉及到JAX-WS(Java ...

    java采用axis调用.net写的WebService

    java采用axis调用.net写的WebService,WebService的参数有传人和传出,传出的参数为ref,java端ParameterMode.OUT,传人的为ParameterMode.IN,WebService返回值为String,java利用Map取传出参数,对Map进行遍历取得...

    axis客户端调用webservice

    java axis客户端调用webservice,可应用于ofbiz框架。 解决网络上共享代码两次调用后会出现timeout的BUG

    axis2 调用webservice 例子

    &lt;groupId&gt;org.apache.axis2 &lt;artifactId&gt;axis2 &lt;version&gt;1.6.2 &lt;groupId&gt;org.apache.axis2 &lt;artifactId&gt;axis2-adb &lt;version&gt;1.6.2 &lt;groupId&gt;org.apache.axis2 ...

    axis2调用WebService详细说明

    在本文档中,我们将详细介绍如何使用Axis2来发布和调用WebService服务。 对于Axis2程序包的下载,可以访问其官方网站:[http://ws.apache.org/axis2/](http://ws.apache.org/axis2/) 进行下载。需要注意的是,由于...

    axis2webservice接口例子

    在Java开发中,Axis2常被用来简化Web服务的创建和消费过程,使得不同编程语言和平台之间的通信变得可能。 在压缩包子文件的文件名称列表中,只有一个文件名“webservice”。这可能包含了服务端的源代码、配置文件、...

    java axis 调用webservice服务端

    Java Axis调用WebService服务端是Java开发者在进行分布式系统交互时常见的一种技术实践。Axis是Apache软件基金会开发的一个开源项目,它提供了一种方便、高效的方式,使得Java应用程序能够作为客户端来消费或作为...

Global site tag (gtag.js) - Google Analytics