Details
-
Bug
-
Status: Resolved
-
Minor
-
Resolution: Fixed
-
2.10.3
-
camel xmpp routing with openfire xmpp server. Used groupchat configurations
-
Moderate
Description
<camel:route id="eventSubscriber"> <camel:from uri="ref:eventReceiverUri" /> <camel:dynamicRouter> <camel:method ref="eventRouterBean" method="processEvent"/> </camel:dynamicRouter> </camel:route>
In eventRouterBean's processEvent method, we are building xmpp groupchat room url depending upon the message and forwading the same message into respective groupchatrooms.
If resulting groupchat room is not existing, it will log message
WARN 2013-04-05 17:55:48,190 (UnitOfWorkProcessor.java processAsync:162) - Caught unhandled exception while processing ExchangeId: ID-INGBTCPIC8NB038-63130-1365164745141-0-3
org.apache.camel.FailedToCreateProducerException: Failed to create Producer for endpoint: Endpoint[xmpp://<ip>:5222/?password=******&resource=zone_4fc100e4-d004-4a0b-a7e2-7cf910585af6_51&room=zone_4fc100e4-d004-4a0b-a7e2-7cf910585af6_51%40conference.test.com&serviceName=ispf.com&user=messagepublisher%40test.com]. Reason: not-allowed(405)
at org.apache.camel.impl.ProducerCache.doGetProducer(ProducerCache.java:395)
at org.apache.camel.impl.ProducerCache.doInAsyncProducer(ProducerCache.java:278)
at org.apache.camel.processor.RoutingSlip.processExchange(RoutingSlip.java:280)
at org.apache.camel.processor.RoutingSlip.doRoutingSlip(RoutingSlip.java:205)
at org.apache.camel.processor.RoutingSlip.process(RoutingSlip.java:135)
at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
and ......
Caused by: not-allowed(405)
at org.jivesoftware.smackx.muc.MultiUserChat.join(MultiUserChat.java:501)
at org.apache.camel.component.xmpp.XmppGroupChatProducer.doStart(XmppGroupChatProducer.java:84)
at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:60)
at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:62)
at org.apache.camel.impl.ProducerCache.doGetProducer(ProducerCache.java:393)
... 40 more
This is still fine.
But issue is if I create a groupchat room in openfire, it should forward new incoming message to same groupchat room. But it is not forwarding.
It is keep on logging error message as 'Not connected to the server' repeatedly for all messages.
But if I restart the camel context, then it starts working.
Looks like it is caching url and its connection as not allowed in dynamic router.
What will be the solution?
And even the exception is thowing at ProducerCache.doGetProducer()..
So how to clear cache for failed connections?