【问题标题】:Coldfusion 9 webservice errorColdfusion 9 Web服务错误
【发布时间】:2015-06-10 17:57:34
【问题描述】:

我正在尝试使用 Coldfusion 运行 Web 服务。我可以在浏览器中正常运行 wsdl。当我尝试通过coldfusion运行它时,我得到:

Unable to parse WSDL as an XML document. 

Parsing error: Fatal Error: URI=null Line=-1: Premature end of file. 
It is recommended that you use a web browser to retrieve and examine the requested WSDL document to ensure it is correct.   

我尝试了多种方法:

wsargs.login='******';
wsargs.password='******';
ws = CreateObject("webservice", "https://correcturl.com/dswsbobje/qaawsservices/biws?WSDL=1&cuid-******", wsargs); 
req = getSOAPRequest(ws); 
</cfscript> 
<cfdump var="#req#">


<cfset wsargs = structNew()>
<cfset wsargs["login"]="******">
<cfset wsargs["password"]="******">
<cfinvoke webservice="https://correcturl.com/dswsbobje/qaawsservices/biws?WSDL=1&cuid=******" 
method="runQueryAsAService" 
returnvariable="results"
argumentCollection="#wsargs#">
</cfinvoke> 


<cfinvoke webservice="https://correcturl.com/dswsbobje/qaawsservices/biws?WSDL=1&cuid=******" 
method="runQueryAsAService" 
returnvariable="results">
<cfinvokeargument name="login" value="******"/> 
<cfinvokeargument name="password" value="******"/> 
</cfinvoke> 

但是都给我这个错误。我看到了其他相关的错误并尝试了其中的解决方案,例如清除 Application.cfc/cfm 并将 refreshwsdl='true' 添加到 cfinvoke,这些都没有做任何事情。谁能帮我解决这个问题?

谢谢。

【问题讨论】:

  • 你能在浏览器中暴露wsdl吗?
  • 是的,它显示在浏览器中。我还能够使用 chrome 插件向导来实际接收响应。
  • Alternativel,你能试试 CFHTTP 看看,是否可行。
  • 我明天会试试,然后告诉你。谢谢!!
  • 我发现使用 cfhttp 像: 但是有一个特定的方法必须运行(runQueryAsAService)。我如何告诉它运行该方法?

标签: web-services coldfusion coldfusion-9


【解决方案1】:

我想我没有完全理解它是如何工作的。我试图使用的 url 我猜是 wsdl 定义。我通过 wizdler 运行了 url 并运行了该方法。然后给了我一个肥皂请求,然后我将其保存在 cfcsave 内容标签中。我的最终有效代码如下所示:

<cfset strURL = "https://correcturl.com/dswsbobje/qaawsservices/biws?WSDL=1&cuid=******">
<cfsavecontent variable="strXML">
<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">
<Header>
    <QaaWSHeader xmlns="VendorInfo">
        <sessionID>[string?]</sessionID>
        <serializedSession>[string?]</serializedSession>
        <ClientType>[string?]</ClientType>
        <AuditingObjectID>[string?]</AuditingObjectID>
        <AuditingObjectName>[string?]</AuditingObjectName>
    </QaaWSHeader>
</Header>
<Body>
    <runQueryAsAService xmlns="VendorInfoLR">
    <login>******</login>
<password>******</password>
    </runQueryAsAService>
</Body>
</Envelope>
</cfsavecontent>

<cfhttp url="#strURL#" method="post" useragent="#CGI.http_user_agent#" result="objGet">
<cfhttpparam type="XML" value="#strXML.Trim()#" />
</cfhttp>

创意来自:http://www.experts-exchange.com/Software/Server_Software/Web_Servers/Q_24311762.html

这种肥皂对我来说是新事物,我需要做更多的研究才能完全理解它。 :)

【讨论】:

    猜你喜欢
    • 2014-06-18
    • 2017-12-29
    • 2019-08-09
    • 2018-04-08
    • 1970-01-01
    • 2011-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多