Throwing exceptions in the onMessageExchange method is usually
a bad idea.  The best way to report errors is to use the error field
on the exchange and sent it back:

  exchange.setError(exception);
  channel.send(exchange;

On 1/15/07, apinke <[EMAIL PROTECTED]> wrote:

I have a question on how and where to handle the MessagingExceptions.

I have a HttpInOutBinding with a custom marshaler that handles the web
request and sends it off to
a Component which extends "ComponentSupport".

Throughout the code , I am throwing a "MessagingException" , when an error
takes place. The "onMessageExchange" in the Component throws this
MessagingException.

I would like this Exception ( .getMessage() ) to be sent back as the servlet
response to the Client. Is there a way I can achieve this ?
Where do the MessagingExceptions thrown by the Components go ??

I can see the trace in the SM log , but the message does not get propogated
furthur to the client
and the client just keeps waiting.

ERROR - SedaQueue - org.apache.servicemix.jbi.nmr.flow.seda
[EMAIL PROTECTED] got error processing MessageExchange[
  id: ID:lkipo0hd8D-1648-1168853657539-4:0
  status: Active
  role: provider
  service: {http://localhost/test}my-service
  endpoint: my-service
  in:
]
javax.jbi.messaging.MessagingException: Error in getting the Service!!No
bean na
med 'TestService' is defined
        at com.test.esb.core.MyComponent.processInputRequest
        at com.test.esb.core.MyComponent.onMessageExchange

Is there a way where I can redirect all MessagingExceptions to servlet
response ?

Thanks
Pat
--
View this message in context: 
http://www.nabble.com/Handling-MessagingExceptions...-tf3013670s12049.html#a8369089
Sent from the ServiceMix - User mailing list archive at Nabble.com.




--
Cheers,
Guillaume Nodet
------------------------
Architect, LogicBlaze (http://www.logicblaze.com/)
Blog: http://gnodet.blogspot.com/

Reply via email to