Hi Rabi,

    I didn't understand this concept of giving service name as
"service:http://xxx.com/bescocr_031807/tap1"; but still it is not working

   Can you please elobarate what is the meaning of the above statement, i
agree that previously i have missed to preceede the service name with
namespace i.e, i should have given like

jbi.route( "service:bescocr:tap1" );

But even the above statement is not working


rabi wrote:
> 
> 
> 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
> 

-- 
View this message in context: 
http://www.nabble.com/Problem-while-invoking-rule-by-using-drools-component-tf3952519s12049.html#a11227175
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Reply via email to