From: Ohler, N. T. <Nat...@hm...> - 2005-07-19 15:51:33
|
I have a web service returning multiple outputs. I can only get freefluo = to read the first one.=20 I have three files to work with: The workflow xml, the wsdl, and the web = service. I have the web service returning two parts, and the message looks like: -------------------------------------------------------------------------= -- <?xml version=3D"1.0" encoding=3D"UTF-8"?><SOAP-ENV:Envelope = xmlns:xsi=3D"http://www.w3.org/2001/XMLSchema-instance" = xmlns:SOAP-ENC=3D"http://schemas.xmlsoap.org/soap/encoding/" = xmlns:SOAP-ENV=3D"http://schemas.xmlsoap.org/soap/envelope/" = xmlns:xsd=3D"http://www.w3.org/2001/XMLSchema" = SOAP-ENV:encodingStyle=3D"http://schemas.xmlsoap.org/soap/encoding/"><SOA= P-ENV:Body><namesp1:getemmaResponse = xmlns:namesp1=3D"urn:getemma"><stderr xsi:type=3D"xsd:string">standard = error message</stderr><stdout xsi:type=3D"xsd:string">standard output = message</stdout></namesp1:getemmaResponse></SOAP-ENV:Body></SOAP-ENV:Enve= lope> -------------------------------------------------------------------------= -- If I set the wsdl to claim the web service only has one response (when = the web service really has two), and the workflow xml to only look for = one: -------------------------------------------------------------------------= -- <message name=3D"emmaResponse"> <part name=3D"stdout" type=3D"xsd:string"/> </message> -------------------------------------------------------------------------= -- <s:link source=3D"getemma:stdout" sink=3D"stdout" /> <s:sink name=3D"stdout" /> -------------------------------------------------------------------------= -- Then my output file saves only the first response, even if the names = don't match! (It saves the part named stderr as stdout, and discards the = part named stdout). If I set the wsdl and workflow for both outputs: -------------------------------------------------------------------------= -- <message name=3D"emmaResponse"> <part name=3D"stdout" type=3D"xsd:string"/> <part name=3D"stderr" type=3D"xsd:string"/> </message> -------------------------------------------------------------------------= -- <s:link source=3D"getemma:stdout" sink=3D"stdout" /> <s:link source=3D"getemma:stderr" sink=3D"stderr" /> <s:sink name=3D"stderr" /> <s:sink name=3D"stdout" /> -------------------------------------------------------------------------= -- Then the output file only gets this much written: -------------------------------------------------------------------------= -- <?xml version=3D"1.0" encoding=3D"UTF-8"?> <b:dataThingMap = xmlns:b=3D"http://org.embl.ebi.escience/baclava/0.1alpha" /> -------------------------------------------------------------------------= -- And the std.err.log reports: -------------------------------------------------------------------------= -- java.lang.RuntimeException: Attempt to create a null data object, = definitely not allowed! at org.embl.ebi.escience.baclava.DataThing.<init>(DataThing.java:231) at = org.embl.ebi.escience.scuflworkers.wsdl.WSDLInvocationTask.execute(WSDLIn= vocationTask.java:196) -------------------------------------------------------------------------= -- I would appreciate any ideas where I'm going wrong with these forms. I = can forward the whole xml files if desired, just wasn't certain how the = mailling list would handle them, and was trying to keep this somewhat = brief. Thanks for any help -Nathaniel |