当前位置:编程问答 > XML/UML >

SOAP应用简介(1)

答案:     创建WSML文件
  
  
  
  
  在运行IIS的服务器上,把下面的文件DocSample1.wsml复制到刚才建立的DocSample1路径下
  
  
  DocSample1.wsml文件:
  
  
  <?xml version=’1.0’ encoding=’UTF-16’ ?>
   <!-- Generated 12/14/00 by Microsoft SOAP SDK WSDL File Generator, Version 1.0 -->
  <servicemapping name=’DocSample1’>
   <service name=’DocSample1’>
   <using PROGID=’DocSample1.Sample1’
   cachable=’0’
   ID=’DocSample1Object’ />
   <port name=’DocSample1PortType’>
   <operation name=’EchoString’>
   <execute uses=’DocSample1Object’
   method=’EchoString’dispID=’1610809344’ >
   <parameter callIndex=’1’ name=’testString’
   elementName=’testString’ />
   <parameter callIndex=’-1’ name=’retval’
   elementName=’Result’ />
   </execute>
   </operation>
   <operation name=’AddNumbers’>
   <execute uses=’DocSample1Object’
   method=’AddNumbers’ dispID=’1610809345’>
   <parameter callIndex=’1’ name=’NumberOne’
   elementName=’NumberOne’ />
   <parameter callIndex=’2’ name=’NumberTwo’
   elementName=’NumberTwo’ />
   <parameter callIndex=’-1’ name=’retval’ elementName=’Result’ />
   </execute>
   </operation>
   <operation name=’SubtractNumbers’>
   <execute uses=’DocSample1Object’
   method=’SubtractNumbers’ dispID=’1610809346’>
   <parameter callIndex=’1’ name=’NumberOne’
   elementName=’NumberOne’ />
   <parameter callIndex=’2’ name=’NumberTwo’
   elementName=’NumberTwo’ />
   <parameter callIndex=’-1’ name=’retval’ elementName=’Result’ />
   </execute>
   </operation>
  </port>
   </service>
  </servicemapping>
  
  
  
  把文件中ProgID改为你刚才创建的ActiveX DLL的ProgID(如果严格按步骤做,这个例子是不用改的)
  
  
  
  
  创建ASP应用
  
  
  
  
  在运行IIS的服务器上,把下面的文件DocSample1.asp复制到刚才建立的DocSample1路径下
  
  
  <%@ LANGUAGE = VBScript %>
  <% Response.ContentType = "text/xml" %>
  <%
   set soapserver = CreateObject("MSSOAP.SoapServer")
   wsdl = Server.MapPath("DocSample1.wsdl")
   wsml = Server.MapPath("DocSample1.wsml")
   call soapserver.init(wsdl, wsml)
   call soapserver.SoapInvoke(request, response)
  %>
  
  
  
  
  
  在客户端做以下工作
  
  
  创建一个VBScript应用
  
  
  
  
  在客户端,创建一个文件,包含以下代码
  
  
  set soapclient = CreateObject("MSSOAP.SoapClient")
  Call soapclient.mssoapinit("http://localhost/DocSample1/DocSample1.wsdl", "DocSample1", "DocSample1PortType")
  wscript.echo soapclient.EchoString("Bob")
  wscript.echo soapclient.AddNumbers(2,3)
  wscript.echo soapclient.SubtractNumbers(3,2)
  
  On Error Resume Next
  wscript.echo soapclient.faultcode
  wscript.echo soapclient.faultstring
  wscript.echo soapclient.faultactor
  wscript.echo soapclient.detail
  
  
  
  保存文件为clientDocSample1.vbs.
  
  
  
  
  测试
  
  
  打开命令行窗口,输入cscript clientDocSample1.vbs
  
  
  注:
  
  
  1.cscript是一个在命令行方式下运行script文件的东东,一般格式如下:
  
  
  cscript [//host option] scriptfile
  
  
  host option以"//"开头,设置一些参数 如
  
  
  cscript //nologo XXX.vbs或者cscript //logo XXX.vbs,后面一个多了一行“版权所有”之类的话
  
  
  2.报读WSDL文件错误时,试试将<?xml version=’1.0’ encoding=’UTF-16’ ?>改为<?xml
  
  version=’1.0’ encoding=’gb2312’ ?>
  
  
  3.在Advanced Server下面,要注意DLL的执行权限
  
  
  
  理解服务器端的开发
  
  
  在这个简单的应用中,你首先在服务器端创建创建DocSample1.dll。这个DLL实现简单的算术操作(EchoString,
  
  AddNumbers,和SubtractNumbers)。注意,如果没有在运行IIS的服务器上创建这个DLL,必须将之复制到服务器上,并注册。
  
  
  
  DocSample1.wsdl:这个WSDL文件描述了服务以及服务中包含的操作: EchoString, AddNumber,和
  
  SubtractNumbers. 它定义了客户发送SOAP消息时必须遵从的格式。
  
  
  DocSample1.wsml:这个WSML文件是Microsoft SOAP实现中特定的文件。
  
  
  DocSample1.asp: 这个ASP文件处理SOAP请求。
  
  

上一个:盖茨从未放弃野心:XML时代我们拥有.Net
下一个:XSLT轻松入门第四章:XPath的语法

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,