2010-05-20 12 views
7

Ich bin ein .NET-Entwickler ohne Coldfusion-Erfahrung, aber ich muss CF-Code schreiben, um einen von mir eingerichteten WCF-Service zugreifen. Ich habe ein paar WCF-Dienste in IIS 7 mit WsHttpBinding gehostet, und ich bin in der Lage, die Dienste in Ordnung zu nutzen, indem ich Service-Referenzen zu einem .NET-Client hinzufügen und Client-Klassen verwenden.help ein .NET-Entwickler konsumieren einen WCF-Service mit Coldfusion

Es ist sehr einfach für einen .NET-Entwickler:

var addressClient = new Service.AddressClient(); 
addressClient.AddressDTO[] addresses = addressClient.GetAddresses(); 

Es ist klar, dass Visual Studio eine Menge hinter den Kulissen tut diese Client-Klassen aus dem WSDL einzurichten.

Ich habe Coldfusion-Beispiele mit cfinvoke gesehen, um Web-Services aufzurufen, aber keine, wo sie tatsächlich Client-Klassen aus der WSDL einrichten und aus der Web-Service-Antwort erstellen.

Also, wie wird so etwas von Coldfusion gemacht?

Vielen Dank im Voraus!

Antwort

1

Adobe hat eigentlich eine sehr gute Referenz, alle Schritte detailliert notwendig, von WSDL zu Coldfusion-Code zu gehen, um einen Web-Service zu konsumieren:

ColdFusion: Consuming Web Services

Wenn Sie die WsHttpBinding in WCF verwenden, dann Der Webdienst sollte genauso funktionieren wie der im Beispiel (Sie können Ihre WSDL mit der Beispiel-WSDL vergleichen, um ein Gefühl dafür zu bekommen, wie Sie alles manuell erstellen).

0

Sie haben einen Endpunkt konfigurieren als .NET Webservice zu handeln. Sobald Sie das tun, können Sie es einfach aufrufen, indem Sie Createobject in Coldfusion verwenden. Hier ist ein kurzes Beispiel:

<cfscript> 
    wcf = CreateObject("webservice","http://ws.spreety.com/TvOnline2009.svc?wsdl"); 
    variables.TalkShowImgHtml = wcf.GetGenreTalkShowImg("[email protected]"); 
</cfscript> 
<cfoutput>#variables.TalkShowImgHtml#</cfoutput> 
2

andere sind richtig, dass, wenn Ihr Webservice einfache Datentypen zurückgibt, cf sie abbildet Datentypen cf und alles ist einfach. In einigen Fällen müssen Sie jedoch die komplexen Datentypen selbst in cf-Datentypen konvertieren.

cflib.org hat eine Funktion, um diese zu behandeln, also möchten Sie vielleicht dort suchen. Hier ist eine Funktion, um ein .net-Dataset, das von einem Webservice zurückgegeben wird, in eine cf-Abfrage zu konvertieren. hoffentlich gibt dir das einen ah-ha moment:

http://www.cflib.org/index.cfm?event=page.udfbyid&udfid=1580