in your routing.drl replace
jbi.route( "bescocr::tap1" ); with
jbi.route("service:http://xxx.com/bescocr_031807
<https://webmail.wipro.com/exchweb/bin/redir.asp?URL=http://xxx.com/bescocr_031807>
/tap1");
and jbi.route( "bescocr::tap2" ); with
jbi.route("service:http://xxx.com/bescocr_031807
<https://webmail.wipro.com/exchweb/bin/redir.asp?URL=http://xxx.com/bescocr_031807>
/tap2");
Regards,
Rabi Mishra
http://rabisblog.blogspot.com/
________________________________
From: Arif Mohd [mailto:[EMAIL PROTECTED]
Sent: Wed 6/20/2007 7:25 PM
To: [email protected]
Subject: Problem while invoking rule by using drools component
Hi,
Iam having the following setup
JMS queue(Consumer)-->eip:Content Based
Router-->SA(DroolsComponent)-->eip:TAP1 or eip:TAP2(Based on rule base)
part of xbean.xml for "eip:Content Based Router" is
<eip:routing-rule>
<eip:predicate>
<eip:xpath-predicate xpath="/Record/eid = 100"
namespaceContext="#nsContext" />
</eip:predicate>
<eip:target>
<eip:exchange-target service="bescocr:myDroolsService" />
</eip:target>
</eip:routing-rule>
xbean.xml for DroolsComponent(SU) is
<beans xmlns:drools="http://servicemix.apache.org/drools/1.0"
xmlns:bescocr="http://xxx.com/bescocr_031807">
<drools:endpoint
service="bescocr:myDroolsService"
endpoint="endpoint"
ruleBaseResource="classpath:routing.drl"/>
</beans>
routing.drl is
package org.apache.servicemix.drools
import org.apache.servicemix.drools.model.Exchange;
global org.apache.servicemix.drools.model.JbiHelper jbi;
rule "Route to tap1"
when
me : Exchange( status == Exchange.ACTIVE, in : in != null )
eval( in.xpath("/Record/eid = 100") )
then
jbi.route( "bescocr::tap1" );
end
rule "Route to tap2"
when
me : Exchange( status == Exchange.ACTIVE, in : in != null )
eval( in.xpath("/Record/eid = 101") )
then
jbi.route( "bescocr::tap2" );
end
with the above setup iam getting the following exception "for service: null
and interface: null" the exception is as follows, do i need to set something
else in xbean.xml?
javax.jbi.messaging.MessagingException: Could not find route for exchange:
InOnly[
id: ID:EC4T16INT165110-4730-1182344415869-7:0
status: Active
role: provider
in: <My Message>
] for service: null and interface: null
at
org.apache.servicemix.jbi.nmr.DefaultBroker.sendExchangePacket(DefaultBroker.java:295)
at
org.apache.servicemix.jbi.security.SecuredBroker.sendExchangePacket(SecuredBroker.java:80)
at
org.apache.servicemix.jbi.container.JBIContainer.sendExchange(JBIContainer.java:793)
at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:381)
at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:456)
at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:428)
at
org.apache.servicemix.common.EndpointDeliveryChannel.sendSync(EndpointDeliveryChannel.java:88)
at
org.apache.servicemix.drools.model.JbiHelper.route(JbiHelper.java:109)
at
org.apache.servicemix.drools.Rule_Route_to_tap1_0.consequence(Rule_Route_to_tap1_0.java:11)
at
org.apache.servicemix.drools.Rule_Route_to_tap1_0ConsequenceInvoker.evaluate(Rule_Route_to_tap1_0ConsequenceInvoker.ja
va:19)
at org.drools.common.DefaultAgenda.fireActivation(Unknown Source)
at org.drools.common.DefaultAgenda.fireNextItem(Unknown Source)
at org.drools.common.AbstractWorkingMemory.fireAllRules(Unknown
Source)
at org.drools.common.AbstractWorkingMemory.fireAllRules(Unknown
Source)
at
org.apache.servicemix.drools.DroolsEndpoint.drools(DroolsEndpoint.java:150)
at
org.apache.servicemix.drools.DroolsEndpoint.process(DroolsEndpoint.java:141)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:489)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:441)
at
org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:593)
at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:174)
at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:176)
at
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
at java.lang.Thread.run(Thread.java:595)
ERROR - DroolsComponent - Error processing exchange InOnly[
id: ID:EC4T16INT165110-4730-1182344415869-3:2
status: Active
role: provider
service: {http://xxx.com/bescocr_031807}myDroolsService
endpoint: endpoint
in: <My Message>
]
org.drools.spi.ConsequenceException: javax.jbi.messaging.MessagingException:
Could not find route for exchange: InOnly[
id: ID:EC4T16INT165110-4730-1182344415869-7:0
status: Active
role: provider
in: <My Message>
] for service: null and interface: null
at org.drools.common.DefaultAgenda.fireActivation(Unknown Source)
at org.drools.common.DefaultAgenda.fireNextItem(Unknown Source)
at org.drools.common.AbstractWorkingMemory.fireAllRules(Unknown
Source)
at org.drools.common.AbstractWorkingMemory.fireAllRules(Unknown
Source)
at
org.apache.servicemix.drools.DroolsEndpoint.drools(DroolsEndpoint.java:150)
at
org.apache.servicemix.drools.DroolsEndpoint.process(DroolsEndpoint.java:141)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:489)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:441)
at
org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:593)
at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:174)
at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:176)
at
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
at java.lang.Thread.run(Thread.java:595)
Caused by: javax.jbi.messaging.MessagingException: Could not find route for
exchange: InOnly[
id: ID:EC4T16INT165110-4730-1182344415869-7:0
status: Active
role: provider
in: <My Message>
] for service: null and interface: null
at
org.apache.servicemix.jbi.nmr.DefaultBroker.sendExchangePacket(DefaultBroker.java:295)
at
org.apache.servicemix.jbi.security.SecuredBroker.sendExchangePacket(SecuredBroker.java:80)
at
org.apache.servicemix.jbi.container.JBIContainer.sendExchange(JBIContainer.java:793)
at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:381)
at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:456)
at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:428)
at
org.apache.servicemix.common.EndpointDeliveryChannel.sendSync(EndpointDeliveryChannel.java:88)
at
org.apache.servicemix.drools.model.JbiHelper.route(JbiHelper.java:109)
at
org.apache.servicemix.drools.Rule_Route_to_tap1_0.consequence(Rule_Route_to_tap1_0.java:11)
at
org.apache.servicemix.drools.Rule_Route_to_tap1_0ConsequenceInvoker.evaluate(Rule_Route_to_tap1_0ConsequenceInvoker.ja
va:19)
... 16 more
ERROR - JmsComponent - Error processing exchange InOnly[
id: ID:EC4T16INT165110-4730-1182344415869-4:0
status: Error
role: consumer
service: {http://xxx.com/bescocr_031807}JmsToPipeTapSvc
endpoint: tap
in: <My Message>
error: org.drools.spi.ConsequenceException:
javax.jbi.messaging.MessagingException: Could not find route for exchange:
InOnly[
id: ID:EC4T16INT165110-4730-1182344415869-7:0
status: Active
role: provider
in: <My Message>
] for service: null and interface: null
]
java.lang.UnsupportedOperationException: A destination must be specified.
at
org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:448)
at
org.apache.activemq.pool.PooledProducer.send(PooledProducer.java:75)
at
org.apache.activemq.pool.PooledProducer.send(PooledProducer.java:60)
at
org.apache.servicemix.jms.multiplexing.MultiplexingConsumerProcessor.process(MultiplexingConsumerProcessor.java:125)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:489)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:463)
at
org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:593)
at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:174)
at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:176)
at
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
at java.lang.Thread.run(Thread.java:595)
ERROR - JmsComponent - Error setting exchange status to
ERROR
javax.jbi.messaging.MessagingException: illegal call to send / sendSync
at
org.apache.servicemix.jbi.messaging.MessageExchangeImpl.handleSend(MessageExchangeImpl.java:571)
at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:370)
at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.send(DeliveryChannelImpl.java:417)
at
org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:58)
at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:593)
at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:174)
at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:176)
at
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
at java.lang.Thread.run(Thread.java:595)
--
View this message in context:
http://www.nabble.com/Problem-while-invoking-rule-by-using-drools-component-tf3952519s12049.html#a11213830
Sent from the ServiceMix - User mailing list archive at Nabble.com.
The information contained in this electronic message and any attachments to
this message are intended for the exclusive use of the addressee(s) and may
contain proprietary, confidential or privileged information. If you are not the
intended recipient, you should not disseminate, distribute or copy this e-mail.
Please notify the sender immediately and destroy all copies of this message and
any attachments.
WARNING: Computer viruses can be transmitted via email. The recipient should
check this email and any attachments for the presence of viruses. The company
accepts no liability for any damage caused by any virus transmitted by this
email.
www.wipro.com