`
jackzlz
  • 浏览: 140782 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

用SOAP方式调用webservice

阅读更多

由于另外系统用的是Microsoft SOAP Toolkit 工具发布的webservice。对应的调用方式也只能采用SOAP方式。

 

1. 下载jar包。 需要jar包: soap.jar 和 mail-1.4.1.jar(已上传附件)

 

2. 代码示例。

 

import java.net.URL;
import java.util.Vector;

import nc.bs.logging.Logger;
import nc.vo.levmpub.card.WebServiceConst;
import nc.vo.levmpub.card.WebServiceParamVO;
import nc.vo.pub.BusinessException;

import org.apache.soap.Constants;
import org.apache.soap.Fault;
import org.apache.soap.encoding.SOAPMappingRegistry;
import org.apache.soap.encoding.soapenc.StringDeserializer;
import org.apache.soap.rpc.Call;
import org.apache.soap.rpc.Parameter;
import org.apache.soap.rpc.Response;
import org.apache.soap.transport.http.SOAPHTTPConnection;
import org.apache.soap.util.xml.QName;
/**
 * 
 * <b> 访问散装控制系统WebService(采用SOAP方式) </b>
 * <p>
 *     详细描述功能
 * </p>
 * @since
 * 创建日期:2013-11-26
 * @author
 */
public class WebServiceWrapper {


	public String callWebServiceMethod(WebServiceParamVO paramVO)
			throws BusinessException {
		String returnValue = null;
		try {
			returnValue = callMethod(paramVO);
		} catch (Exception e) {
			throw new BusinessException("调用散装控制系统接口出现错误: " + e.getMessage());
		}
		return returnValue;
	}
	
	/**
	 * 由于散装控制系统的wsdl是用Microsoft SOAP Toolkit自动生成的,只能通过soap方式访问接口
	 * 
	 * @param paramVO
	 * @throws Exception
	 */
	private String callMethod(WebServiceParamVO paramVO) throws Exception {
		SOAPMappingRegistry smr = new SOAPMappingRegistry();
		StringDeserializer sd = new StringDeserializer();
		smr.mapTypes(Constants.NS_URI_SOAP_ENC, new QName("", "Result"), null,
				null, sd);

		// 创建传输路径和参数
		SOAPHTTPConnection st = new SOAPHTTPConnection();

		// 创建调用
		Call call = new Call();
		call.setSOAPTransport(st);
		call.setSOAPMappingRegistry(smr);

		call.setTargetObjectURI(paramVO.getTargetObjectURI());
		call.setMethodName(paramVO.getMethodName());
		call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);

		Vector<Parameter> params = getParameter(paramVO);
		call.setParams(params);

		URL url = new URL(paramVO.getWsdlUrl());
		Response resp = call.invoke(url, paramVO.getSoapAction());

		if (resp == null) {
			return null;
		}
		if (resp.generatedFault()) {
			Fault fault = resp.getFault();
			Logger.error(fault.toString());
			throw new BusinessException(fault.getFaultString());
		}
		
		Parameter ret = resp.getReturnValue();
		Object value = ret.getValue();
		
		return (String)value;
	}

	private Vector<Parameter> getParameter(WebServiceParamVO paramVO) {
		Vector<Parameter> params = new Vector<Parameter>();
		params.addElement(new Parameter(WebServiceConst.CUSERNAME,
				String.class, paramVO.getUserName(), null));
		params.addElement(new Parameter(WebServiceConst.CPASSWORD,
				String.class, paramVO.getPassword(), null));
		params.addElement(new Parameter(WebServiceConst.NTYPE, Integer.class,
				paramVO.getNtype(), null));
		params.addElement(new Parameter(WebServiceConst.CCARNO, String.class,
				paramVO.getCarno(), null));
		params.addElement(new Parameter(WebServiceConst.CCKBM, String.class,
				paramVO.getStorcode(), null));
		params.addElement(new Parameter(WebServiceConst.CCHBM, String.class,
				paramVO.getInvcode(), null));

		return params;
	}
}

 

说明:



 

3. 参考。

 

10种语言的webservice的调用过程

 

java调用webservice接口方法

 

Web Services between .NET, Java and MS SOAP Toolkit

  • 大小: 34.7 KB
分享到:
评论
1 楼 q373005568 2016-10-19  
nc这个是用哪个jar包的?

相关推荐

    Soap方式调用WebService

    本篇文章将深入探讨SOAP方式调用WebService的相关知识点。 1. **SOAP消息结构** SOAP消息是XML文档,主要由三部分组成:Header、Body和Envelope。Envelope定义了消息的结构,Header包含了可选的元数据,如安全或...

    C++、SOAP实现调用webservice接口,上传文件、日志

    总的来说,C++结合SOAP调用Web服务接口是一项复杂的任务,涉及到网络通信、XML处理和错误管理等多个方面。使用适当的库和工具,如GSOAP,可以简化这个过程。通过学习和实践,开发者可以创建出能够与各种Web服务交互...

    C#winform下WebService Soap应用

    在本文中,我们将详细介绍如何使用 C# 语言在 Winform 平台下开发 WebService Soap 应用,以实现列车时刻、手机归属、QQ 在线、航空时刻等查询工具。 WebService Soap 简介 WebService Soap 是一种基于 SOAP 协议...

    使用Http post的方式调用webservice

    当我们无法直接引用特定的jar包或者面临jar包冲突时,通过HTTP POST方式调用WebService成为了一种有效的解决方案。本文将深入探讨如何在Java环境中,利用HTTP POST方法调用WebService,并解决可能遇到的问题。 首先...

    PB9-soap-WEBSERVICE例子.rar

    通过学习和实践这个例子,开发者可以掌握在PB9中使用SOAP调用Web服务的技能,这对于开发跨平台、分布式的企业级应用非常重要。同时,这也涉及到了XML、网络通信和Web服务架构等相关知识,对于提升整体的编程能力非常...

    客户端调用webservice方式一(soap请求)

    客户端通过SOAP请求调用WebService是一种常见的跨平台通信方式,适用于各种编程语言。理解SOAP消息的结构和HTTP请求的原理,是进行此类通信的关键。在实际开发中,开发者通常会使用库或框架(如Java的JAX-WS,.NET的...

    SOAP调用webservice例子

    总的来说,SOAP调用Web服务涉及到XML消息的构建、发送和解析,以及使用WSDL来定义和理解服务接口。尽管现在RESTful API更为流行,但在某些需要强类型检查、事务处理和互操作性的场景下,SOAP仍然是一个重要的选择。

    C#实现SOAP调用WebService

    最近写了一个SOA服务,开始觉得别人拿到我的服务地址,然后直接添加引用就可以使用了,结果"大牛"告知不行。...让我写一个SOAP调用服务的样例,我有点愣了,因为没做过这方面的,于是搞到了一个Demo,然后学习了下。

    webservice、soap等接口调用参考

    在标题和描述中提到的"webservice,soap调用",这是指使用SOAP协议来调用Web服务的过程。SOAP消息通常以HTTP或HTTPS作为传输协议,其结构主要由三个部分组成:Header、Body和Envelope。Header部分包含了关于消息处理...

    用Soap调用webservice接口

    本篇将深入探讨如何使用SOAP来调用WebService接口,以及相关工具的使用。 首先,我们需要理解SOAP的工作原理。SOAP基于XML(Extensible Markup Language),它定义了一个消息结构,使得应用程序可以发送和接收结构...

    java+soap+webservice 调用模拟

    3. **Java中的SOAP调用**:在Java中,我们通常使用JAX-WS(Java API for XML Web Services)框架来处理SOAP通信。JAX-WS提供了多种工具,如wsimport,可以从WSDL文件生成客户端代理类。这些代理类提供了调用Web服务...

    C#实现SOAP调用WebService.rar

    4. **调用WebService方法**:现在,你可以像调用本地方法一样调用WebService的公开方法。例如,如果WebService有一个名为`GetData`的方法,可以这样调用: ```csharp string result = client.GetData(someInput); ...

    PHP使用SOAP调用WEBSERVICE接口

    PHP使用SOAP调用WEBSERVICE接口

    httpClient调用webservice接口

    ### 使用HttpClient调用WebService接口详解 #### 一、概述 在现代软件开发中,Web服务(尤其是WebService)作为实现系统间交互的一种重要手段被广泛采用。WebService提供了通过HTTP协议进行远程过程调用的能力,...

    Java使用SOAP获取webservice实例解析

    ### Java使用SOAP获取WebService实例解析 #### WebService简介 WebService是一种跨编程语言和操作系统平台的、在网络上进行数据交换的一种方式。它使用标准的Internet协议,如HTTP、XML、SOAP等来实现不同系统间的...

    C# Soap调用WebService的实例

    本篇文章的标题是"C# Soap调用WebService的实例",这是一个关于使用C#语言调用WebService的示例代码。SOAP(Simple Object Access Protocol)是一种基于XML的协议,用于在不同的操作系统和编程语言之间交换结构化的...

    HttpClient 调用WebService示例

    在本文中,我们将深入探讨如何使用HttpClient调用WebService。 首先,调用WebService通常涉及SOAP(Simple Object Access Protocol)或RESTful API。HttpClient可以处理这两种类型的Web服务。在本示例中,我们假设...

    Delphi调用WebService的实例(非常经典)[参考].pdf

    "Delphi调用WebService的实例(非常经典)" 在 Delphi 中调用 WebService 是一种非常经典的实例。下面我们将详细介绍 Delphi 调用 WebService 的相关知识点。 首先, Delphi 调用 WebService 需要了解基本概念。...

    VB如何调用WebService

    在探讨“VB如何调用WebService”的主题时,我们首先需要理解几个关键概念:Visual Basic(简称VB),WebService,以及SOAP协议。Visual Basic是一种由微软开发的面向对象的编程语言,广泛应用于Windows平台上的应用...

Global site tag (gtag.js) - Google Analytics