Excel如何调用JWS(Java Webservice)

本文介绍了一种使用 Excel VBA 通过 HTTP GET 方法调用 Java Web Service 的方法。当尝试使用 SoapClient 调用 .Net Web Service 失败后,采用 MSXML2.XMLHTTP 成功实现调用并解析返回的 XML 数据。
部署运行你感兴趣的模型镜像

   最近需要用到Excel调用JAVA Webservice,一开始用VBA调用.Net写的Webservice,例如:

   

    Dim objSoapClient As New SoapClient
    
    objSoapClient.ClientProperty("ServerHTTPRequest") = True
   
    objSoapClient.mssoapinit ("http://svr-015:60/MMS/CalMetrics.asmx?WSDL")
    s = objSoapClient.HelloWorld()
    
    出现错误:WSDLReader:XML   Paser   failed   at   linenumber1,lineposition   5,reason   is:Invalid   xml   declaration。

 

    解决方法:放弃用SoapClient,改用"MSXML2.XMLHTTP",具体参考如下代码:


 

    'get方式调用JWS
    Set objhttp = CreateObject("MSXML2.XMLHTTP")
    Set xmlDOC = CreateObject("MSXML.DOMDocument")

    strWebserviceURL = "http://se.hundsun.com/axis/services/JiraService?method=getProject"
    
    '设置参数及值   
    objhttp.Open "get", strWebserviceURL, False
   
    '设置Content-type,很重要
    objhttp.setRequestHeader "Content-Type", "text/xml;charset=utf-8"
    objhttp.send (strWebserviceURL)
    bOK = xmlDOC.Load(objhttp.responseXML)
   
    '判断状态
    If objhttp.Status = 200 Then
'        xmlstr = xmlDOC.XML
        ConvDatasetToRecordsetProject xmlDOC    '解析XML
    End If

   


Public Function ConvDatasetToRecordsetProject(ByVal voNL As DOMDocument)
    Err.Clear
    On Error GoTo ErrHandle
   
    Application.Cursor = xlWait
   
    Dim iXMLValueNode As IXMLDOMNode
    Dim iXMLNodeList As IXMLDOMNodeList

    Set iXMLNodeList = voNL.selectNodes("soapenv:Envelope/soapenv:Body/multiRef")

    Dim str As String
    For Each iXMLValueNode In iXMLNodeList
            str = iXMLValueNode.childNodes.Item(1).Text + "/" + iXMLValueNode.childNodes.Item(0).Text
            proList.AddItem str
    Next
   
    Application.Cursor = xlDefault

   
ExtSub:
 
    Exit Function
   
ErrHandle:
    Application.Cursor = xlDefault
    MsgBox Err.Description, vbCritical + vbOKOnly
    GoTo ExtSub


End Function


您可能感兴趣的与本文相关的镜像

Llama Factory

Llama Factory

模型微调
LLama-Factory

LLaMA Factory 是一个简单易用且高效的大型语言模型(Large Language Model)训练与微调平台。通过 LLaMA Factory,可以在无需编写任何代码的前提下,在本地完成上百种预训练模型的微调

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值