On Fri, Sep 25, 2009 at 4:53 PM, Lars Heinemann <[email protected]> wrote: > So you fill the JMS queue from outside SMX and process them inside SMX? > Well you always have to use Normalized messages inside the bus. Thats > the way JBI works. > > If you read a topic or queue from within ServiceMix you will always > get a MessageExchange containing a normalized message. > Where exactly is the problem?
The problem is my understanding of how a NormalizedMessage is filled. The default marshalers only support TextMessages and I have ObjectMessages being published on the Queue and consumed from the Topic. SMX is doing the publishing (Queue) and consuming (Topic) and another service outside of SMX is consuming the request (Queue) and publishing the response (Topic). To get this to work I have written my own Marshaler, extending the DefaultConsumerMarshaler and DefaultProviderMarshaler and hacked the code that uses PhaseInterceptorChain to convert to/from NormalizedMessages. I couldn't find documentation that explains how you work with NormalizedMessages. All this is very new, so I expect I am doing something wrong. The next step after this proof of concept would be to create a binding component for another protocol. And I expect that will require understanding NormalizedMessages in greater details. Thanks
