(100')VB+SOAP Toolkit 3.0 实现WS服务问题

hjh032722 2008-12-24 01:24:27
代码:
Dim SoapClient As Object
Set SoapClient = CreateObject("MSSOAP.SoapClient30")
Call SoapClient.MSSoapInit("http://172.16.6.118:88/axis/services/BizService?wsdl", "", "BizService", "")'执行此行出现如下错误

SoapMapper:The schema definition with a targetnamespace of http://schemas.xmlsoap.org/soap/encoding/ for SoapMapper string could not be found HRESULT=0x80004005: 未指定的错误
- SoapMapper:The SoapMapper for element string could not be created HRESULT=0x80004005: 未指定的错误
- WSDLOperation:Initialization of a SoapMapper for operation runBiz failed HRESULT=0x80004005: 未指定的错误
- WSDLOperation:Initializing of the input message failed for operation runBiz HRESULT=0x80004005: 未指定的错误
- WSDLPort:An operation for port BizService could not be initialized HRESULT=0x80004005: 未指定的错误
- WSDLPort:Analyzing the binding information for port BizService failed HRESULT=0x80004005: 未指定的错误
- WSDLService:Initialization of the port for service ProcessCallerWSService failed HRESULT=0x80004005: 未指定的错误
- WSDLReader:Analyzing the WSDL file failed HRESULT=0x80004005: 未指定的错误
- Client:One of the parameters supplied is invalid. HRESULT=0x80070057: 参数不正确。


望高人指点
...全文
341 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
li36669957 2011-02-16
  • 打赏
  • 举报
回复
我也是哦
hjh032722 2009-09-25
  • 打赏
  • 举报
回复
谢谢大家了,忙了一段时间,终于有时间上来走走,问题解决了,呵呵, 顺便把代码复制上来,参考参考,

'实现函数
Private Function Execute(ByVal Method As String, _
ByVal A As String, _
ByVal B As String, _
ByVal C As String, _
ByVal D As String, _
ByVal E As String) As String

Dim Serializer As SoapSerializer30
Dim Reader As SoapReader30
Dim ResultElm As IXMLDOMElement
Dim FaultElm As IXMLDOMElement
Dim Connector As SoapConnector30

Set Connector = New HttpConnector30
Connector.Property("EndPointURL") = EndPointURL
Connector.Connect

' binding/operation/soapoperation
Connector.Property("SoapAction") = SoapAction & Method
Connector.BeginMessage

Set Serializer = New SoapSerializer30
Serializer.Init Connector.InputStream

Serializer.startEnvelope
Serializer.startBody
Serializer.startElement Method, CALC_NS
Serializer.startElement "packageName"
Serializer.WriteString CStr(A)
Serializer.endElement
Serializer.startElement "unitId"
Serializer.WriteString CStr(B)
Serializer.endElement
Serializer.startElement "processName"
Serializer.WriteString CStr(C)
Serializer.endElement
Serializer.startElement "password"
Serializer.WriteString CStr(D)
Serializer.endElement
Serializer.startElement "bizDataXML"
Serializer.WriteString CStr(E)
Serializer.endElement
Serializer.endElement
Serializer.endBody
Serializer.endEnvelope

Connector.EndMessage

Set Reader = New SoapReader30
Reader.Load Connector.OutputStream

If Not Reader.Fault Is Nothing Then
MsgBox Reader.faultstring.Text, vbExclamation
Else
Execute = CStr(Reader.RPCResult.Text)
End If

End Function


'调用业务WS服务接口
'**********************************************************************************************************************************************************
Dcom = "<root><data><regino>" + ls_rno + "</regino><flag>" + ls_oprType + "</flag></data></root>"
succeed = Execute("runBiz", "gs12315", "0", "bizWebService.bizDivide", ls_wsd, Dcom)
'**********************************************************************************************************************************************************
threenewbee 2009-06-22
  • 打赏
  • 举报
回复
这个很简单,完全可以自己写一个。

Web Service 如果支持 POST 方式的话,只要把参数 POST 到对应的 URL 上,然后接受返回的 SOAP XML 就可以了。

至于如何 POST 上去,有很多方法,我喜欢用 MSXML2 库里面的 httprequest 方法。
wpy110521 2009-03-30
  • 打赏
  • 举报
回复
楼上的两位真牛比.
迈克揉索芙特 2008-12-29
  • 打赏
  • 举报
回复
微软的这个SOAP不太好用。
所以我自己写了一个:
http://blog.csdn.net/Modest/archive/2006/08/25/1118470.aspx

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧