由于另外系统用的是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接口方法
相关推荐
本篇文章将深入探讨SOAP方式调用WebService的相关知识点。 1. **SOAP消息结构** SOAP消息是XML文档,主要由三部分组成:Header、Body和Envelope。Envelope定义了消息的结构,Header包含了可选的元数据,如安全或...
在本文中,我们将详细介绍如何使用 C# 语言在 Winform 平台下开发 WebService Soap 应用,以实现列车时刻、手机归属、QQ 在线、航空时刻等查询工具。 WebService Soap 简介 WebService Soap 是一种基于 SOAP 协议...
当我们无法直接引用特定的jar包或者面临jar包冲突时,通过HTTP POST方式调用WebService成为了一种有效的解决方案。本文将深入探讨如何在Java环境中,利用HTTP POST方法调用WebService,并解决可能遇到的问题。 首先...
总的来说,C++结合SOAP调用Web服务接口是一项复杂的任务,涉及到网络通信、XML处理和错误管理等多个方面。使用适当的库和工具,如GSOAP,可以简化这个过程。通过学习和实践,开发者可以创建出能够与各种Web服务交互...
最近写了一个SOA服务,开始觉得别人拿到我的服务地址,然后直接添加引用就可以使用了,结果"大牛"告知不行。...让我写一个SOAP调用服务的样例,我有点愣了,因为没做过这方面的,于是搞到了一个Demo,然后学习了下。
通过学习和实践这个例子,开发者可以掌握在PB9中使用SOAP调用Web服务的技能,这对于开发跨平台、分布式的企业级应用非常重要。同时,这也涉及到了XML、网络通信和Web服务架构等相关知识,对于提升整体的编程能力非常...
客户端通过SOAP请求调用WebService是一种常见的跨平台通信方式,适用于各种编程语言。理解SOAP消息的结构和HTTP请求的原理,是进行此类通信的关键。在实际开发中,开发者通常会使用库或框架(如Java的JAX-WS,.NET的...
总的来说,SOAP调用Web服务涉及到XML消息的构建、发送和解析,以及使用WSDL来定义和理解服务接口。尽管现在RESTful API更为流行,但在某些需要强类型检查、事务处理和互操作性的场景下,SOAP仍然是一个重要的选择。
在标题和描述中提到的"webservice,soap调用",这是指使用SOAP协议来调用Web服务的过程。SOAP消息通常以HTTP或HTTPS作为传输协议,其结构主要由三个部分组成:Header、Body和Envelope。Header部分包含了关于消息处理...
本篇将深入探讨如何使用SOAP来调用WebService接口,以及相关工具的使用。 首先,我们需要理解SOAP的工作原理。SOAP基于XML(Extensible Markup Language),它定义了一个消息结构,使得应用程序可以发送和接收结构...
3. **Java中的SOAP调用**:在Java中,我们通常使用JAX-WS(Java API for XML Web Services)框架来处理SOAP通信。JAX-WS提供了多种工具,如wsimport,可以从WSDL文件生成客户端代理类。这些代理类提供了调用Web服务...
4. **调用WebService方法**:现在,你可以像调用本地方法一样调用WebService的公开方法。例如,如果WebService有一个名为`GetData`的方法,可以这样调用: ```csharp string result = client.GetData(someInput); ...
PHP使用SOAP调用WEBSERVICE接口
### Java使用SOAP获取WebService实例解析 #### WebService简介 WebService是一种跨编程语言和操作系统平台的、在网络上进行数据交换的一种方式。它使用标准的Internet协议,如HTTP、XML、SOAP等来实现不同系统间的...
### 使用HttpClient调用WebService接口详解 #### 一、概述 在现代软件开发中,Web服务(尤其是WebService)作为实现系统间交互的一种重要手段被广泛采用。WebService提供了通过HTTP协议进行远程过程调用的能力,...
本篇文章的标题是"C# Soap调用WebService的实例",这是一个关于使用C#语言调用WebService的示例代码。SOAP(Simple Object Access Protocol)是一种基于XML的协议,用于在不同的操作系统和编程语言之间交换结构化的...
在本文中,我们将深入探讨如何使用HttpClient调用WebService。 首先,调用WebService通常涉及SOAP(Simple Object Access Protocol)或RESTful API。HttpClient可以处理这两种类型的Web服务。在本示例中,我们假设...
LabView调用WebService接口是一种常见的数据交互方式,尤其在工业自动化和嵌入式系统中,它允许LabView程序与远程服务器进行数据交换。本教程将详细介绍如何在LabView中使用WebService,包括POST方法用于上传数据和...
"Delphi调用WebService的实例(非常经典)" 在 Delphi 中调用 WebService 是一种非常经典的实例。下面我们将详细介绍 Delphi 调用 WebService 的相关知识点。 首先, Delphi 调用 WebService 需要了解基本概念。...
在探讨“VB如何调用WebService”的主题时,我们首先需要理解几个关键概念:Visual Basic(简称VB),WebService,以及SOAP协议。Visual Basic是一种由微软开发的面向对象的编程语言,广泛应用于Windows平台上的应用...