2015-06-10 2 views
0

Я пытаюсь запустить веб-сервис с использованием coldfusion. Я могу запустить wsdl в браузере. Когда я пытаюсь запустить его с помощью ColdFusion я получаю:Ошибка ColdFusion 9 webservice

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, ни один из которых ничего не сделал. Кто-нибудь может мне с этим помочь?

Спасибо.

+0

Можете ли вы открыть wsdl в браузере? –

+0

Да, он отображается в браузере. Я также смог использовать chrome plugin wizdler, чтобы получить ответ. –

+0

Alternativel, можете ли вы попробовать CFHTTP и посмотреть, если это работает. –

ответ

0

Я думаю, у меня не было полного понимания того, как это работает. URL-адрес, который я пытался использовать, был, по-моему, определением 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

Это мыло материал является новым для меня, и я больше исследований, чтобы сделать, чтобы полностью понять. :)