Coldfusion 9 webservice错误

时间:2015-06-10 17:57:35

标签: web-services coldfusion coldfusion-9

我正在尝试使用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 =&#39; true&#39;到cfinvoke,没有做过任何事情。任何人都可以帮我这个吗?

感谢。

1 个答案:

答案 0 :(得分:0)

我想我并没有完全理解它是如何工作的。我试图使用的网址是我猜的wsdl定义。我运行url和wizdler运行方法。然后,我给了我一个肥皂请求,然后我保存在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的想法

这种肥皂对我来说是新的,我还有更多的研究要做,以便完全理解它。 :)