2016-07-07 20 views
0

Ich erhalte die folgende Fehlermeldung, wenn Sie den Web-Dienst mit dem <cfinvoke> Tag Aufruf Coldfusion 11.Wie behebt man "faultString: [Virtuoso SOAP server] Es gibt keine solche Prozedur" Webservice cfinvoke CF11?

faultString: [server Virtuoso SOAP] Es gibt kein solches Verfahren

ich bestanden haben alle die richtigen Argumente für die Methode (unter Berücksichtigung des Argumentnamens).

Code aufrufen

<cfinvoke Webservice="absolute link" method="method name" wsversion="1" refreshwsdl="true"> 
    <cfinvokeargument name="paramone" value="valone"> 
    <cfinvokeargument name="paramtwo" value="valtwo"> 
</cfinvoke> 

Vielen Dank im Voraus für Ihre Hilfe.

+0

Bitte geben Sie den Code, den Sie den Web-Service anrufen verwenden. –

+0

FWIW, könnte auch einen Blick auf die Verwendung von 'createObject (" webservice ")' und 'addSoapHeader' anstelle von' cfinvoke' werfen. http://www.adobepress.com/articles/article.asp?p=2031328&seqNum=5 – Leigh

+0

Danke für das Vorschlagen einer anderen Alternative. Ich bin mir ziemlich sicher, dass es funktioniert, aber derzeit weiß ich nicht, was ist der Namespace, den ich als 2. Argument der Funktion addSoapRequestHeader übergeben sollte, so muss ich mit der cfhttp Problemumgehung für das Projekt gehen – Tantely

Antwort

2

Ich habe die Lösung gefunden. Aus bestimmten Gründen funktioniert die Verwendung des Cfinvoke-Tags nicht für die Verwendung ihres Webdienstes.

Ich habe das cfhttp-Tag als Alternative verwendet und einen Header-Parameter namens "SOAPAction" hinzugefügt und auf einen bestimmten Wert gesetzt, den ich hier nicht teilen kann. Auch das Aktionsattribut musste auf "POST" gesetzt werden.

Die endgültige Abhilfe Code ist die folgende (wo wsRequest Variable die xml gesendet werden soll):

<cfhttp method="post" url="#application.WSDLEndpoint#"> 
    <cfhttpparam type="header" name="content-type" value="text/xml"> 
    <cfhttpparam type="header" name="SOAPAction" value="[specific absolute link]"> 
    <cfhttpparam type="header" name="charset" value="utf-8"> 
    <cfhttpparam type="xml" value="#wsRequest#" > 
</cfhttp>