vb6通过SoapMessageClient及SoapMessage方式访问其他公司的webservice时,如何生成请求报文片段的对象类?

代码都是从离职同事手中半路接手,也没有开发文档。起初运行都正常也就没在意,但因为其他公司的产品升级,提供了更丰富的接口。所以我的应用也需要相应调整,生成新的请求消息片段类... 代码都是从离职同事手中半路接手,也没有开发文档。起初运行都正常也就没在意,但因为其他公司的产品升级,提供了更丰富的接口。所以我的应用也需要相应调整,生成新的请求消息片段类(我的称呼,如果你不太明白就往下看)。所以我整理了一下原始代码,希望能理清整个交互的实现。现在我将手头资源列表如下,希望能有助把问题描述清楚。ps:具体代码片段将后附!
(1)应用所在机器安装了Microsoft SOAP Toolkit 2.0。
(2)从其他公司webservice服务器去到的wsdl文件。
(3)类型为ActiveX DLL的工程(它就是我所指的请求报文片段类),由它生成的.DLL文件将被我的应用所引用。用于构造请求报文的主体。
(4)类型为"标准exe"的工程。我的主引用,通过引用以上.dll文件,用于生成完整的请求报文SoapMessage,并通过SoapMessageClient于其他公司所公布的webservice交互。我的应用拿到返回报文后解析,并执行后续操作。
经过查看那个ActiveX DLL工程,发现它是通过名为Microsoft SOAP Message Object (MSSMO)Generator v1.0.0工具生成的。这个工具由SOAP Toolkit 2.0开发包提供的内嵌于vb6开发平台。需要通过"外接程序"-"外接程序管理器"中勾选适当选项后方能使用。这个工程中类模板中包含的类跟wsdl文件中的定义有极大的相关性。所以我的问题是:
(1)这个ActiveX DLL的工程是如何生成的?是否跟这个wsdl有关?
(2)我下载的这个版本的Microsoft SOAP Toolkit 2.0所带的MSSMO Generator这个生成工具的版本是v1.2.0。据我查看Microsoft SOAP Toolkit 2.0开发包的帮助文档
得知,MSSMO Generator可以将wsdl,xsd及xdr文件等都可转换为ActiveX DLL的工程。但是我这个版本的MSSMO Generator却只能使用xdr文件。是否v1.0.0这个版本就可以使用wsdl直接生成我所指的请求报文片段类?如果是这样,那个版本的soap toolkit包含这个工具?
(3)我通过查阅网上一些资料,被告知可以通过xml spy软件将xml转为xsd再转为xdr文件。我也尝试使用过,能成功转化为xdr文件,但是转化生成的ActiveX DLL工程跟
我当前使用的相距万里。也就是并未找到这个dll工程真正生成的步骤。是否我的思路不正确?即这个工程跟wsdl没有关系?
(4)或者有其他途径可以生成这个.dll工程,能完全重现这个工程?我需要详细的步骤哦,如果有什么地方需要我补充资料请尽管说。
我会将刚才提及的几个资源列出来:
1、wsdl
2、ActiveX DLL的工程中包含的类的名称(代码只放其中一个做代表)
3、标准exe应用中跟web服务交互的代码片段。
展开
 我来答
dcbehe1
2010-09-07
知道答主
回答量:1
采纳率:0%
帮助的人:0
展开全部
(1)wsdl文件全文:
我不知道为什么,老传不上去

(2)传不了图片,只好列出来了:<
action、actionCol、attribute_、attributeCol、configurationRequest、eventValue、eventValueCol、filters、identity、interval、login、loginResponse、loginResult、logout、logoutRespons、mainActions、metric、notification、objectId、objectType、objectTypeCol、objectTypes、parameter、parameterCol、parameters、relativeActions、retrieveConfiguration...
我出来的差不多才有一半类名。如果哪位能生成以上所有类的话,基本就是正确的思路了。

(3)应用中需要应用.dll其中类与web服务交互的代码片段:只是简单的登录
Dim GdspClient As Object 'SoapMessageClient
Dim SubmitReq As Object 'SoapMessage
Dim SubmitRes As Object 'SoapMessage
Dim loginInput As New gssProxyXdr.Login '此处的gssProxyXdr就是生成的那个请求报文片段类activx dll工程生成的dll
Dim loginOut As loginResponse
Dim mOutput As New gssProxyXdr.loginResponse
Dim loginResult As gssProxyXdr.loginResult

Public Function Init(wsdlPath As String) As Boolean
On Error GoTo err:
Set GdspClient = CreateObject("MSSMO.SoapMessageClient")
Set SubmitReq = CreateObject("MSSMO.SoapMessage")
GdspClient.Connect wsdlPath, "statService", "statPort"

参考资料: wsdl文档

Storm代理
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I... 点击进入详情页
本回答由Storm代理提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式