版本:v3.0 官方免费版大小:3.5M
类别:服务器区系统:WinAll, WinXP
立即下载Soap Toolkit3.0官网版是一款功能十分出色的web服务器工具软件,由微软官方打造的服务器通讯协议,Soap Toolkit作为Soap服务开发组件的SDK,可以创建web服务,如果系统提示请检查soap toolkit是否正常时,需要Soap Toolkit支持运行,喜欢的朋友赶紧来IT猫扑网下载体验吧!
SOAP作为一种协议,同服务端Web Service进行通讯。微软提供了SOAP协议的SDK,SOAP Toolkit3.0是基于COM的一套SOAP开发组件。 Microsoft SOAP Toolkit 3.0 提供一个灵活的框架,可以为各种 Intranet 和 Internet 解决方案构建可伸缩的 Web 服务。在这两种方案中,安全性都是建立可靠服务的重要因素。SOAP Toolkit 3.0 支持基于 iis 安全基础结构的 Internet 安全性。本文介绍了如何使用 Microsoft SOAP Toolkit 2.0 建立安全解决方案。 简言之使用 Microsoft SOAP Toolkit 3.0 建立安全 Web 服务。
基于类对象的传输协议。
SOAP RPC表示(RPC representation),它定了一个协定,用于表示远程过程调用和应答;
SOAP绑定(binding),它定义了SOAP使用哪种协议交换信息。使用HTTP/TCP/UDP协议都可以。
把SOAP绑定到HTTP提供了同时利用SOAP的样式和分散的灵活性的特点以及HTTP的丰富的特征库的优点。在HTTP上传送SOAP并不是说SOAP会覆盖现有的HTTP语义,而是HTTP上的SOAP语义会自然的映射到HTTP语义。在使用HTTP作为协议绑定的场合中,RPC请求映射到HTTP请求上,而RPC应答映射到HTTP应答。然而,在RPC上使用SOAP并不仅限于HTTP协议绑定。
SOAP封装(envelop),它定义了一个框架,描述消息中的内容是什么,是谁发送的,谁应当接受并处理它以及如何处理它们;
SOAP编码规则(encoding rules),它定义了一种序列化机制,用于表示应用程序需要使用的数据类型的实例;
由于另外系统用的是Microsoft SOAP Toolkit 工具发布的webservice。对应的调用方式也只能采用SOAP方式。
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;
}
查看全部