You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Alexandros Karypidis <ak...@yahoo.gr> on 2010/02/23 20:00:31 UTC

Working with CXF web service beans

Hello,

I'm going through the tutorial: 
http://camel.apache.org/tutorial-example-reportincident-part5.html

Basically, there's two things I don't like about CXF's integration with 
Camel:

(1) I must cast the input message to a parameter class manually
(2) I must call a processor set the output message

The points are illustrated below:

<camel-cxf:cxfEndpoint id="myCXFBean" 
serviceClass="some.jaxws.WebServiceClass" ... />
<camel:camelContext id="myCamelContext" trace="true">
<camel:route>
<camel:from uri="cxf:bean:myCXFBean" />
<camel:to uri="log:logger" />
(1) <camel:convertBodyTo type="my.ParameterClass" />
(2) <camel:process ref="processorThatSetsOutMessage" />
</camel:route>
</camel:camelContext>

My problem with the approach is that:

Regarding (1): since a web service has multiple operations, each with 
different parameters, one would need to cast to a different class type, 
depending on which operation is being called.

Regarding (2): I simply need Camel to do some magic prior to the web 
service implementation (i.e. in the "processor" I just need to call the 
method of "some.jaxws.WebServiceClass" that corresponds to the input 
message); is there a way to configure this simple behaviour, with the 
return value of the invocation automatically being set to become the 
body of the output message (i.e. not need to set 
exchange.getOut().out.setBody() explicitly)?


Re: Working with CXF web service beans

Posted by Ashwin Karpe <as...@progress.com>.
Hi,

There is no such capability available at this time to do automatic
invocation of methods based on the XML Root Element.

If this is important to you, please create a Jira entry at
https://issues.apache.org/activemq/secure/Dashboard.jspa
https://issues.apache.org/activemq/secure/Dashboard.jspa 

Please add the entry as a new feature request so that it can be assessed for
merit and value.

Cheers,

Ashwin...


karypid wrote:
> 
> Hello,
> 
> I'm going through the tutorial: 
> http://camel.apache.org/tutorial-example-reportincident-part5.html
> 
> Basically, there's two things I don't like about CXF's integration with 
> Camel:
> 
> (1) I must cast the input message to a parameter class manually
> (2) I must call a processor set the output message
> 
> The points are illustrated below:
> 
> <camel-cxf:cxfEndpoint id="myCXFBean" 
> serviceClass="some.jaxws.WebServiceClass" ... />
> <camel:camelContext id="myCamelContext" trace="true">
> <camel:route>
> <camel:from uri="cxf:bean:myCXFBean" />
> <camel:to uri="log:logger" />
> (1) <camel:convertBodyTo type="my.ParameterClass" />
> (2) <camel:process ref="processorThatSetsOutMessage" />
> </camel:route>
> </camel:camelContext>
> 
> My problem with the approach is that:
> 
> Regarding (1): since a web service has multiple operations, each with 
> different parameters, one would need to cast to a different class type, 
> depending on which operation is being called.
> 
> Regarding (2): I simply need Camel to do some magic prior to the web 
> service implementation (i.e. in the "processor" I just need to call the 
> method of "some.jaxws.WebServiceClass" that corresponds to the input 
> message); is there a way to configure this simple behaviour, with the 
> return value of the invocation automatically being set to become the 
> body of the output message (i.e. not need to set 
> exchange.getOut().out.setBody() explicitly)?
> 
> 
> 


-----
--- 
Ashwin Karpe, Principal Consultant, PS - Opensource Center of Competence 
Progress Software Corporation
14 Oak Park Drive
Bedford, MA 01730
--- 
+1-972-304-9084 (Office) 
+1-972-971-1700 (Mobile) 
---- 
Blog: http://opensourceknowledge.blogspot.com/


-- 
View this message in context: http://old.nabble.com/Working-with-CXF-web-service-beans-tp27708539p27714194.html
Sent from the Camel - Users mailing list archive at Nabble.com.


Re: Working with CXF web service beans

Posted by Willem Jiang <wi...@gmail.com>.
Did you try to use the cxfbean[1]?
[1] http://camel.apache.org/cxf.html#CXF-CXFBeanComponent%282.0orlater%29

Willem

Alexandros Karypidis wrote:
> Hello,
> 
> I'm going through the tutorial: 
> http://camel.apache.org/tutorial-example-reportincident-part5.html
> 
> Basically, there's two things I don't like about CXF's integration with 
> Camel:
> 
> (1) I must cast the input message to a parameter class manually
> (2) I must call a processor set the output message
> 
> The points are illustrated below:
> 
> <camel-cxf:cxfEndpoint id="myCXFBean" 
> serviceClass="some.jaxws.WebServiceClass" ... />
> <camel:camelContext id="myCamelContext" trace="true">
> <camel:route>
> <camel:from uri="cxf:bean:myCXFBean" />
> <camel:to uri="log:logger" />
> (1) <camel:convertBodyTo type="my.ParameterClass" />
> (2) <camel:process ref="processorThatSetsOutMessage" />
> </camel:route>
> </camel:camelContext>
> 
> My problem with the approach is that:
> 
> Regarding (1): since a web service has multiple operations, each with 
> different parameters, one would need to cast to a different class type, 
> depending on which operation is being called.
> 
> Regarding (2): I simply need Camel to do some magic prior to the web 
> service implementation (i.e. in the "processor" I just need to call the 
> method of "some.jaxws.WebServiceClass" that corresponds to the input 
> message); is there a way to configure this simple behaviour, with the 
> return value of the invocation automatically being set to become the 
> body of the output message (i.e. not need to set 
> exchange.getOut().out.setBody() explicitly)?
> 
>