Can you outline your target use case a little more please, forgetting about JBR etc for now.
It sounds like you need to set up a webservice proxy on your ESB instance, right? If this is the case, then the recommended approach is to use the <http-gateway> as yourt ESB endpoint (i.e. what clients call), with it's associated service having a SOAPProxy action (and possibly some pre/post transformers for transforming the request/response) configured on it to route the payload to the proxied webservice endpoint. There are some quickstarts demonstrating this.
Thanks for your answer.
What you are saying involving the webservice is indeed in the direction of my use case.
The use case involves modularizing the existing code, and enable multi-protocol calls on the long term.
However, I'm still in the fase where I'm studying the possible approaches, and I found that wrapping our business code in a webservice might cause overhead in work and performance. I was thinking about a solution where I could publish my business services with JBoss Remoting, and then publish it with the ESB, making it accessible over JBoss Remoting itself (for new Java applications), and over SOAP WS (for legacy, or non-java application). The main goal would be not to need the XML transformations and network transfer when not needed.
At the moment, we don't have a JBR Routing action within the project, but it wouldn't be too hard to write one.
What we do have is an EJB Invoker action. If your service logic was exposed as an EJB, you could probably do what you want i.e. allow Java clients invoke directly using the EJB remote interface, and expose a WS endpoint through the ESB for legacy/non-java apps, making the EJB service invocation using the EJB invocation action. I'm sure there's an example of that there too in the quickstarts.
Thanks for clearing that out.
In you response you seem to be hinting to the fact that applications knowing the business service format shouldn't go throught the ESB: "Java clients invoke directly using the EJB remote interface", or am I interpreting this the wrong way?
We were thinking in the direction of a solution where all service requests would pass the ESB (for the sake of monitoring, security, ..).
Is there code in the JBoss ESB project providing EJB-gateways then? (to enable these 'EJB'-aware requests to pass through the ESB).
The approach of letting all requests pass the ESB involves all messages to be formatted to the ESB-aware format, also if this isn't required for business services who actually speak the same language as the requester. Do you have any suggestions there?
Thanks already for your quick responses.
OK... sorry Yoeri.
So we don't currently have a JBRRouter action, but it shouldn't be difficult to implement, if you want to have a try.
Or, if the business services were implemented as EJB, you could use the EJB Invoker action for invoking the EJBs (see the quickstart for that). Then, using the JBR Listener, I think you should be able to fulfill the use cases you outlined in the first post... replacing the last step in both cases with an invocation on an EJB.
Thanks for your answers.
For the moment, I will follow the solution you suggested.
When I find some free time, I will look into writing a JBRRouter action.
I'll keep you updated.