I'm having a problem passing a parameter to a web service I call via the oxf:delegation processor.
The web service is definitely being called as I do see output of the expected format, but my input parameter(s) just don't get passed to the web service. I'm using OPS 3.5.1 and the web service is written with Microsoft .NET and and when I see the web service method being called in the debugger (at the .NET end) the parameter has not been passed. Does anyone know what I am doing wrong with the parameter passing in the XPL snippet below? /// Here's the SOAP description of the test service... POST /Details.asmx HTTP/1.1 Host: localhost Content-Type: text/xml; charset=utf-8 Content-Length: length SOAPAction: "http://www.test.com/code/GetDetails" <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <GetDetails xmlns="http://www.test.com/details"> <code>string</code> </GetDetails> </soap:Body> </soap:Envelope> /// and here's the XPL delegation processor call... <p:processor name="oxf:delegation"> <p:input name="interface" debug="INTERFACE"> <config> <service id="GetDetails" type="webservice" endpoint="http://localhost:54321/Details.asmx"> <operation name="GetDetails" nsuri="http://www.test.com/code" soap-action="http://www.test.com/code/GetDetails"/> </service> </config> </p:input> <p:input name="call" debug="CALL"> <delegation:execute service="GetDetails" operation="GetDetails" xmlns:delegation="http://orbeon.org/oxf/xml/delegation"> <GetDetails xmlns="http://www.test.com/code"> <code>1234</code> </GetDetails> </delegation:execute> </p:input> <p:output name="data" ref="data" /> </p:processor> Thanks in advance for any help. Regards, Neil Crofts |
Hello,
You make a mistake in the declaration of the input "call" : <p:input name="call" debug="CALL"> <delegation:execute service="GetDetails" operation="GetDetails" xmlns:delegation="http://orbeon.org/oxf/xml/delegation"> <GetDetails xmlns="http://www.test.com/code"> <code>1234</code> </GetDetails> </delegation:execute> </p:input> You must write : <p:input name="call" debug="CALL"> <delegation:execute service="GetDetails" operation="GetDetails" xmlns:delegation="http://orbeon.org/oxf/xml/delegation"> <code>1234</code> </delegation:execute> </p:input> -----Message d'origine----- De : ncrofts [mailto:[hidden email]] Envoyé : lundi 31 mars 2008 01:45 À : [hidden email] Objet : [ops-users] Can't pass a parameter to a web service via oxf:delegation processor I'm having a problem passing a parameter to a web service I call via the oxf:delegation processor. The web service is definitely being called as I do see output of the expected format, but my input parameter(s) just don't get passed to the web service. I'm using OPS 3.5.1 and the web service is written with Microsoft .NET and and when I see the web service method being called in the debugger (at the .NET end) the parameter has not been passed. Does anyone know what I am doing wrong with the parameter passing in the XPL snippet below? /// Here's the SOAP description of the test service... POST /Details.asmx HTTP/1.1 Host: localhost Content-Type: text/xml; charset=utf-8 Content-Length: length SOAPAction: "http://www.test.com/code/GetDetails" <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <GetDetails xmlns="http://www.test.com/details"> <code>string</code> </GetDetails> </soap:Body> </soap:Envelope> /// and here's the XPL delegation processor call... <p:processor name="oxf:delegation"> <p:input name="interface" debug="INTERFACE"> <config> <service id="GetDetails" type="webservice" endpoint="http://localhost:54321/Details.asmx"> <operation name="GetDetails" nsuri="http://www.test.com/code" soap-action="http://www.test.com/code/GetDetails"/> </service> </config> </p:input> <p:input name="call" debug="CALL"> <delegation:execute service="GetDetails" operation="GetDetails" xmlns:delegation="http://orbeon.org/oxf/xml/delegation"> <GetDetails xmlns="http://www.test.com/code"> <code>1234</code> </GetDetails> </delegation:execute> </p:input> <p:output name="data" ref="data" /> </p:processor> Thanks in advance for any help. Regards, Neil Crofts -- View this message in context: http://www.nabble.com/Can%27t-pass-a-parameter-to-a-web-service-via-oxf%3Adelegation-processor-tp16389216p16389216.html Sent from the ObjectWeb OPS - Users mailing list archive at Nabble.com. This e-mail and any attachment is for authorised use by the intended recipient(s) only. It may contain proprietary material, confidential information and/or be subject to legal privilege. It should not be copied, disclosed to, retained or used by, any other party. If you are not an intended recipient then please promptly delete this e-mail and any attachment and all copies and inform the sender. Thank you. -- You receive this message as a subscriber of the [hidden email] mailing list. To unsubscribe: mailto:[hidden email] For general help: mailto:[hidden email]?subject=help OW2 mailing lists service home page: http://www.ow2.org/wws |
Hi,
Thanks for your suggestion. I removed the GetDetails root element as you suggest, but I'm afraid I still get the same result i.e. I don't get the parameter passed, but the service is called. Here's the console debug output for the "CALL" input: <delegation:execute xmlns:delegation="http://orbeon.org/oxf/xml/delegation" xmlns:oxf="http://www.orbeon.com/oxf/processors" xmlns:p="http://www.orbeon.com/oxf/pipeline" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" service="GetDetails" operation="GetDetails"> <code>1234</code> </delegation:execute> Have I missed something subtle in the syntax? Regards, Neil Crofts
|
Are you sure that the name of the service is the same of the operation ?
In the interface input, I have an attribute "style" : <service id="SuiviDemandeService" type="webservice" style="rpc" > <xsl:attribute name="endpoint"> <xsl:value-of select="/*"/> </xsl:attribute> <operation nsuri="http://service.edem.gda.unilog.com" name="initialiserSuiviDemande" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> </service> Try this. -----Message d'origine----- De : ncrofts [mailto:[hidden email]] Envoyé : lundi 31 mars 2008 11:01 À : [hidden email] Objet : [ops-users] RE: Can't pass a parameter to a web service via oxf:delegation processor Hi, Thanks for your suggestion. I removed the GetDetails root element as you suggest, but I'm afraid I still get the same result i.e. I don't get the parameter passed, but the service is called. Here's the console debug output for the "CALL" input: <delegation:execute xmlns:delegation="http://orbeon.org/oxf/xml/delegation" xmlns:oxf="http://www.orbeon.com/oxf/processors" xmlns:p="http://www.orbeon.com/oxf/pipeline" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" service="GetDetails" operation="GetDetails"> <code>1234</code> </delegation:execute> Have I missed something subtle in the syntax? Regards, Neil Crofts Bittard, Julien wrote: > > Hello, > > You make a mistake in the declaration of the input "call" : > <p:input name="call" debug="CALL"> > <delegation:execute service="GetDetails" > operation="GetDetails" > xmlns:delegation="http://orbeon.org/oxf/xml/delegation"> > <GetDetails xmlns="http://www.test.com/code"> > <code>1234</code> > </GetDetails> > </delegation:execute> > </p:input> > > You must write : > <p:input name="call" debug="CALL"> > <delegation:execute service="GetDetails" > operation="GetDetails" > xmlns:delegation="http://orbeon.org/oxf/xml/delegation"> > <code>1234</code> > </delegation:execute> > </p:input> > > > > -----Message d'origine----- > De : ncrofts [mailto:[hidden email]] Envoyé : lundi 31 mars > 2008 01:45 À : [hidden email] Objet : [ops-users] Can't pass a > parameter to a web service via oxf:delegation processor > > > I'm having a problem passing a parameter to a web service I call via the > oxf:delegation processor. > > The web service is definitely being called as I do see output of the > expected format, but my input parameter(s) just don't get passed to the > web service. I'm using OPS 3.5.1 and the web service is written with > Microsoft .NET and and when I see the web service method being called in > the debugger (at the .NET end) the parameter has not been passed. > > Does anyone know what I am doing wrong with the parameter passing in the > XPL snippet below? > > > /// Here's the SOAP description of the test service... > > POST /Details.asmx HTTP/1.1 > Host: localhost > Content-Type: text/xml; charset=utf-8 > Content-Length: length > SOAPAction: "http://www.test.com/code/GetDetails" > > <?xml version="1.0" encoding="utf-8"?> > <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xmlns:xsd="http://www.w3.org/2001/XMLSchema" > xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> > <soap:Body> > <GetDetails xmlns="http://www.test.com/details"> > <code>string</code> > </GetDetails> > </soap:Body> > </soap:Envelope> > > > > /// and here's the XPL delegation processor call... > > <p:processor name="oxf:delegation"> > <p:input name="interface" debug="INTERFACE"> > <config> > <service id="GetDetails" type="webservice" > endpoint="http://localhost:54321/Details.asmx"> > <operation name="GetDetails" > nsuri="http://www.test.com/code" > soap-action="http://www.test.com/code/GetDetails"/> > </service> > </config> > </p:input> > <p:input name="call" debug="CALL"> > <delegation:execute service="GetDetails" > operation="GetDetails" > xmlns:delegation="http://orbeon.org/oxf/xml/delegation"> > <GetDetails xmlns="http://www.test.com/code"> > <code>1234</code> > </GetDetails> > </delegation:execute> > </p:input> > <p:output name="data" ref="data" /> > </p:processor> > > > Thanks in advance for any help. > > Regards, > Neil Crofts > > > > -- > View this message in context: > http://www.nabble.com/Can%27t-pass-a-parameter-to-a-web-service-via-oxf%3Adelegation-processor-tp16389216p16389216.html > Sent from the ObjectWeb OPS - Users mailing list archive at Nabble.com. > > > This e-mail and any attachment is for authorised use by the intended > recipient(s) only. It may contain proprietary material, confidential > information and/or be subject to legal privilege. It should not be copied, > disclosed to, retained or used by, any other party. If you are not an > intended recipient then please promptly delete this e-mail and any > attachment and all copies and inform the sender. Thank you. > > > > > -- > You receive this message as a subscriber of the [hidden email] mailing > list. > To unsubscribe: mailto:[hidden email] > For general help: mailto:[hidden email]?subject=help > OW2 mailing lists service home page: http://www.ow2.org/wws > > View this message in context: http://www.nabble.com/Can%27t-pass-a-parameter-to-a-web-service-via-oxf%3Adelegation-processor-tp16389216p16394017.html Sent from the ObjectWeb OPS - Users mailing list archive at Nabble.com. This e-mail and any attachment is for authorised use by the intended recipient(s) only. It may contain proprietary material, confidential information and/or be subject to legal privilege. It should not be copied, disclosed to, retained or used by, any other party. If you are not an intended recipient then please promptly delete this e-mail and any attachment and all copies and inform the sender. Thank you. -- You receive this message as a subscriber of the [hidden email] mailing list. To unsubscribe: mailto:[hidden email] For general help: mailto:[hidden email]?subject=help OW2 mailing lists service home page: http://www.ow2.org/wws |
Hi,
Thanks again for following this up. I have also tried adding in the style attribute. I did this based on the example on Web Service delegation in the Orbeon docs: http://www.orbeon.com/ops/doc/processors-delegation#web-service The documented example is attempting to call a .NET based web service (.asmx) just as I am. I've studied the WSDL output for that 3rd party service and I just can't see what the difference is between that and what I'm doing with my sample. As I say, I know that the right method of the web service is being called as it is hitting a breakpoint in Visual Studio, but it just doesn't have the parameter data. Very frustrating. Regards, Neil Crofts
|
Hi Julien,
At last, I figured it out. It is a namespace issue. In the official documentation the example passes the parameters using an explicit namespace e.g. <m:ElementName>...</m:ElementName> I added in an explicit namespace definition and it worked. For example, I changed my original code to: <p:input name="call" debug="CALL"> <delegation:execute service="GetDetails" operation="GetDetails" xmlns:delegation="http://orbeon.org/oxf/xml/delegation"> <m:GetDetails xmlns:m="http://www.test.com/code"> <m:code>1234</m:code> </m:GetDetails> </delegation:execute> </p:input> Thanks for your time on this. You really helped me think around where the problem might possibly have been. Regards, Neil Crofts
|
Free forum by Nabble | Edit this page |