Advice on solution wanted

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

Advice on solution wanted

Given the following scenario, what would the "best" solution be.

Given is:
  - A remote SOAP service is available over a JMS transport.
  - The service is described by a WSDL.
  - I generate an interface class (wsdl port type) from the wsdl using wsdl2java (cxf-codegen-plugin)
  - Applications that access the service, should be able to do this by just knowing about the interface class and some provider of a proxy having this interface.
  - I need to do processing related to the request and response messages where I have access the message contents as POJO:s

So, given the interface class I would like to be able to create the proxy (I have tried both cxf and camel proxies). When an application calls a service method on the proxy, I want the following to happen:  

The service call is transformed to a message exchange, where the request data is in POJO format. The exchange is now processed by a route having a number "steps". At some point towards the end of the route I need to transform the request to the required XML message. When I have the XML message I will do some further processing steps and after this, I would like to send the request message to the remote server using  camel-jms. When the response is received I would like to be able to process the response contents using a POJO representation of the response, and finally provide the response back to the calling client via the proxy.

I had this working using ProxyBuilder and the camel-soap dataformat, but I found out that if I had a method with two input parameters of the same type, then this is not supported. So this solution does not work.

Any help towards the "best" solution is highly appreciated.