29.10.2007

Webservicezugriff Coldfusion <-> SAP

Wenn man in Coldfusion ein Webservice aufrufen möchte funktioniert das normalerweise so:

<cfinvoke webservice="http://webserviceurl?wsdl" method="MeineMethode" username="xxx" password="yyy" returnvariable="aTemp">
<cfinvokeargument name="mtUsername" value="USER1">
</cfinvokeargument>
</cfinvoke>

Coldfusion macht dann aus den Webservice Methoden JAVA Stub Objekte. Wenn es funktioniert! Hat das WSDL Fehler oder kann es aus irgendeinem anderen Grund das WSLD nlicht laden oder keine Objekte erzeugen ist der einzige Response den man erhält:

"Could not generate stub objects for web service invocation."

Eine sehr sinnvolle Fehlermeldung die keinerlei Hinweise enthält warum. Es könnte das wsdl fehlerhaft sein, die Verbindung generell nicht funktionieren oder sonst irgendwein Fehler aufgetreten sein. Dynamisch erzeugte Webservices können einem in diesem Fall in den Wahnsinn treiben.

Es gibt aber auch noch einen andern Weg um mit Coldfusion Webservices aufzurufen und damit zu arbeiten: via a cfhttp post! Als zusätzlicher Benefit ist es auch noch schneller als per <cfinvoke>

Beispiel für CF Webservice mit cfhttp post:

<cfset wsurl="http://webserviceurl?wsdl">
<cfset mymethod="MeineMethode">
<cfsavecontent variable="localscope.soapRequest">
<cfoutput>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:idm="http://xyz.at/x.integration.solman">
<soapenv:Header/>
<soapenv:Body>
<idm:mtUsername>
<bname>USER1</bname>
</idm:mtUsername>
</soapenv:Body>
</soapenv:Envelope>
</cfoutput>
</cfsavecontent>

<cfhttp url="#WSURL#" username="xxx" password="yyy" method="POST" resolveurl="NO" useragent="Axis/1.1">
<cfhttpparam type="header" name="SOAPAction" value="#WSURL##MyMethod#">
<cfhttpparam type="xml" name="body" value="#localscope.soapRequest#">
</cfhttp>

<cfset soapresponse="XMLParse(cfhttp.FileContent)">
<cfdump var="#localscope.soapresponse#">

Mit dem Open Source Tool SOAP UI kann man schnell aus dem WSDL das XML Request erzeugen lassen.

25.10.2007

www.party-einladung.com

Meine Seite www.party-einladung.com wurde im Magazin eMedia (Nr. 21/07) bei den Webtipps für Halloween Partys erwähnt.

Gleich auf der nächsten Seite wurden Fragen & Antwortportale vorgestellt. Hier wurde meine Seite www.wer-weiss.com leider nicht nicht erwähnt obwohl sie ganz gut gepasst hätte.

23.10.2007

Rownum in MySQL

Falls eine Rownum Funktion wie sie Oracle bietet in MySQL gebraucht wird kann das so umgestezt werden:

SET @rownum:=0;
select a.*,@rownum:=@rownum+1 as rownum from tstatus a;

Funktioniert ohne Probleme in 4.x

 
Add to Technorati Favorites Digg! Diese Seite zu Mister Wong hinzufügen blogoscoop
Impressum