This post has been edited 1 times, last edit by "DrChaotica" (Dec 15th 2008, 11:09am)
This post has been edited 1 times, last edit by "KaiStapel" (Dec 15th 2008, 12:44pm)
This post has been edited 3 times, last edit by "DrChaotica" (Dec 15th 2008, 2:09pm)
Nein, du brauchst, wenn du pick benutzt, kein receive mehr. Das was du sonst in receive spezifiziert hättest, packst du jetzt in onMessage. Die BPEL-Engine entscheidet dann, welche Nachricht empfangen wurde und packt sie in die entsprechende Variable und lässt den dazu gehörigen Unterprozess ablaufen.Danke erstmal für Deine Antwort. Mh, aber ich muss ja in receiveInput schon spezifizieren, in welche Variable die empfangene SOAP-Nachricht geschrieben wird, und die ist vom Typ erstmal ein String. Das wäre ok, wenn die pick-Aktivität mir die Nachrichten dann über diesen Umweg in Behemoth-Requests wrappt. Habe ich das so richtig verstanden?
Source code |
|
1 2 3 4 5 6 |
<getPriceForProduct> <product> <productId>SN34/342-A435</productId> <vendor>SE-WorldWide-Trading-Group</vendor> </product> </getPriceForProduct> |
Jede Unteraktivität in der Pick-Aktivität enthält ein eigenes Reply. Es wird ja auch immer nur ein Strang ausgeführt.Ein Problem bliebe dann noch: Wie bekomme ich später die zwei verschiedenen Response-Messagetypen des Behemoth-Services wieder zurück in einen String umgewandelt, den ich dann in replyOutput zurückgebe?
Ah, stimmt, das hattest Du ja auch in dem anderen Thread geschrieben...hab es übersehen.Nein, du brauchst, wenn du pick benutzt, kein receive mehr. Das was du sonst in receive spezifiziert hättest, packst du jetzt in onMessage.
Ich hatte mich falsch ausgedrückt...die SOAP-Nachricht ist XML, das habe ich soweit schon verstanden. Aber als payload im Body erwartet der Proxy-Service, so wie er in der WSDL beschrieben wird, doch standardmäßig einen String? Müsste man nun dort nicht noch die payload-Datentypen für Request und Respond so abändern, dass sie beliebige XML-Nachrichten enthalten können? Oder ist ein String dafür schon ausreichend? (vermutlich schon. nur passiert leider soviel im hintergrund, worüber man noch keinen überblick hat... bloß, zusammensetzen muss man es trotzdem)Und nein, die SOAP-Nachricht ist vom TYP kein einfacher String, sie ist XML, die als Nutzinhalt (Body-Element) wieder XML enthält, der z.B. so aussehen könnte:
Source code
1 2 3 4 5 6 <getPriceForProduct> <product> <productId>SN34/342-A435</productId> <vendor>SE-WorldWide-Trading-Group</vendor> </product> </getPriceForProduct>
ich denke, man müsste das so abändern, dass etwas vom typ Product erwartet wirdMüsste man nun dort nicht noch die payload-Datentypen für Request und Respond so abändern, dass sie beliebige XML-Nachrichten enthalten können? Oder ist ein String dafür schon ausreichend? (vermutlich schon. nur passiert leider soviel im hintergrund, worüber man noch keinen überblick hat... bloß, zusammensetzen muss man es trotzdem)
Hi Leute,
ich habe Tutorian Invoke gemacht, habe folgende Fehlermeldung bekommen, wenn ich "http://localhost:8080/ode/processes/SimpleInvokeService/process?input=Donald" angebe:
<soapenv:Fault>
<faultcode>soapenverver</faultcode>
<faultstring>axis2ns2:selectionFailure</faultstring>
<detail/>
</soapenv:Fault>
Wenn ich "http://localhost:8080/ode/processes/SimpleInvokeProcess/process?input=Donald" angebe,dann kommt Fehlermeldung:
DEBUG - GeronimoLog.debug(66) | Checking for Service using target endpoint address : /ode/processes/SimpleInvokeProcess/process?input=Donald
DEBUG - GeronimoLog.debug(66) | Found service in registry from name SimpleInvokeProcess/process: null
Endpunkt bei mir ist : http://localhost:8080/ode/processes/SimpleInvokeService
hat jemand auch sowas bekommen?
<soapenv:Fault>
<faultcode>soapenverver</faultcode>
<faultstring>axis2ns2:selectionFailure</faultstring>
<detail/>
</soapenv:Fault>
Naja, das mag hier für den Request mal zufällig funktioneren, für den Respond aber wiederum nicht, weil die Typen ungleich sind. Da sollte schon etwas allgemeineres her...ich denke, man müsste das so abändern, dass etwas vom typ Product erwartet wirdMüsste man nun dort nicht noch die payload-Datentypen für Request und Respond so abändern, dass sie beliebige XML-Nachrichten enthalten können? Oder ist ein String dafür schon ausreichend? (vermutlich schon. nur passiert leider soviel im hintergrund, worüber man noch keinen überblick hat... bloß, zusammensetzen muss man es trotzdem)