If i have correctly read the config, the quartz timer try to send the jbi exchange to the foo:MyConsumer service. The only reference of such a service is on the consumer endpoint of servicemix-jms. It can not work, as the consumer endpoint will not activate any JBI endpoint, it will only listen to incoming jms message and send them in the NMR. You should try to send it to the jms provider endpoint.
On 8/16/06, Pierre NOTEL <[EMAIL PROTECTED]> wrote:
Hi, In fact, the timer component doesn't find the sm-jms component. So the exception occured each time the timer message is sent. You will find above my XML configuration file and the console output. If anybody find the mistake... Cheers, Pierre NOTEL Bull R&D //************************************************************** XML file : <?xml version="1.0" encoding="UTF-8"?> <beans xmlns:sm="http://servicemix.apache.org/config/1.0" xmlns:foo="http://servicemix.org/cheese" xmlns:spring="http://xbean.org/schemas/spring/1.0" xmlns:jms="http://servicemix.apache.org/jms/1.0" xmlns:eip="http://servicemix.apache.org/eip/1.0" > <import resource="classpath:jmx.xml" /> <import resource="classpath:activemq.xml" /> <import resource="classpath:jndi.xml" /> <!-- JBI container --> <sm:container spring:id="jbi" rootDir="./wdir" useMBeanServer="true" createMBeanServer="true" installationDirPath="./install" monitorInstallationDirectory="true" dumpStats="true" statsInterval="10" transactionManager="#transactionManager"> <sm:activationSpecs> <!-- ####################### myScreenOutput ######################## --> <sm:activationSpec componentName="myScreenOutput" service="foo:myScreenOutput"> <sm:component> <bean xmlns="http://xbean.org/schemas/spring/1.0" class="org.apache.servicemix.components.util.StreamWriterComponent"> </bean> </sm:component> </sm:activationSpec> <!-- JMS POLLER - CONSUMER --> <sm:activationSpec componentName="MyConsumer" service="foo:MyConsumer"> <sm:component> <jms:component> <jms:endpoints> <jms:endpoint service="foo:MyConsumer" endpoint="MyConsumer" targetService="foo:MyProvider" targetEndpoint="myProvider" role="consumer" defaultMep="http://www.w3.org/2004/08/wsdl/in-opt-out" destinationStyle="topic" jmsProviderDestinationName="demo.org.servicemix.result" jndiConnectionFactoryName="connectionFactory" defaultOperation="" /> </jms:endpoints> </jms:component> </sm:component> </sm:activationSpec> <!-- JMS SENDER - PROVIDER --> <sm:activationSpec componentName="MyProvider" service="foo:MyProvider"> <sm:component> <jms:component> <jms:endpoints> <jms:endpoint service="foo:MyProvider" endpoint="myProvider" role="provider" defaultMep="http://www.w3.org/2004/08/wsdl/in-opt-out" destinationStyle="topic" jmsProviderDestinationName="demo.org.servicemix.result" jndiConnectionFactoryName="connectionFactory" defaultOperation="" /> </jms:endpoints> </jms:component> </sm:component> </sm:activationSpec> <!-- ####################### My input timer ######################## --> <sm:activationSpec componentName="myTimer" service="foo:myTimer" destinationService="foo:MyConsumer"> <sm:component> <bean xmlns="http://xbean.org/schemas/spring/1.0" class="org.apache.servicemix.components.quartz.QuartzComponent"> <property name="triggers"> <map> <entry> <key> <bean class="org.quartz.SimpleTrigger"> <property name="repeatInterval" value="5000" /> <property name="repeatCount" value="-1" /> </bean> </key> <bean class="org.quartz.JobDetail"> <property name="name" value="job name" /> <property name="group" value="job group" /> <property name="description" value="" /> </bean> </entry> </map> </property> </bean> </sm:component> </sm:activationSpec> </sm:activationSpecs> </sm:container> </beans> //************************************************************** Console output : Loading Apache ServiceMix from file: basic.xml WARN - MulticastDiscoveryAgent - brokerName not set INFO - JBIContainer - Activating component for: [container=ServiceMix,name=#SubscriptionManager#] with service: null component: [EMAIL PROTECTED] INFO - ComponentMBeanImpl - Initializing component: #SubscriptionManager# INFO - JBIContainer - Activating component for: [container=ServiceMix,name=servicemix-eip] with service: null component: [EMAIL PROTECTED] INFO - JBIContainer - Activating component for: [container=ServiceMix,name=servicemix-jms] with service: null component: [EMAIL PROTECTED] INFO - JBIContainer - Activating component for: [container=ServiceMix,name=servicemix-lwcontainer] with service: null component: [EMAIL PROTECTED] INFO - DeploymentService - Restoring service assemblies INFO - JBIContainer - ServiceMix JBI Container (http://servicemix.org/) name: ServiceMix running version: 3.0-SNAPSHOT INFO - JBIContainer - Activating component for: [container=ServiceMix,name=myScreenOutput] with service: {http://servicemix.org/cheese}myScreenOutput component: [EMAIL PROTECTED] INFO - ComponentMBeanImpl - Initializing component: myScreenOutput *INFO - JBIContainer - Activating component for: [container=ServiceMix,name=MyConsumer] with service: {http://servicemix.org/cheese}MyConsumer component: [EMAIL PROTECTED] INFO - ComponentMBeanImpl - Initializing component: MyConsumer* INFO - JBIContainer - Activating component for: [container=ServiceMix,name=MyProvider] with service: {http://servicemix.org/cheese}MyProvider component: [EMAIL PROTECTED] INFO - ComponentMBeanImpl - Initializing component: MyProvider INFO - JBIContainer - Activating component for: [container=ServiceMix,name=myTimer] with service: {http://servicemix.org/cheese}myTimer component: [EMAIL PROTECTED] INFO - ComponentMBeanImpl - Initializing component: myTimer 1 name = quartz.properties INFO - SimpleThreadPool - Job execution threads will use class loader of thread: main INFO - QuartzScheduler - Quartz Scheduler v.1.5.1 created. INFO - RAMJobStore - RAMJobStore initialized. INFO - StdSchedulerFactory - Quartz scheduler 'DefaultQuartzScheduler' initialized from default resource file in Quartz package: 'quartz.properties' INFO - StdSchedulerFactory - Quartz scheduler version: 1.5.1 INFO - QuartzScheduler - Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED started. INFO - ComponentMBeanImpl - Setting running state for Component: servicemix-eip to Started INFO - ComponentMBeanImpl - Initializing component: servicemix-eip INFO - ComponentMBeanImpl - Setting running state for Component: servicemix-jms to Started INFO - ComponentMBeanImpl - Initializing component: servicemix-jms INFO - ComponentMBeanImpl - Setting running state for Component: servicemix-lwcontainer to Started INFO - ComponentMBeanImpl - Initializing component: servicemix-lwcontainer *WARN - DefaultBroker - ServiceName ({http://servicemix.org/cheese}MyConsumer) specified for routing, but can't find it registered* INFO - JobRunShell - Job job group.job name threw a JobExecutionException: org.quartz.JobExecutionException: javax.jbi.messaging.MessagingException: Failed to resolve endpoint: org.apache.servicemix.jbi.NoServiceAvailableException: Cannot find an instance of the service: {http://servicemix.org/cheese}MyConsumer [See nested exception: javax.jbi.messaging.MessagingException: Failed to resolve endpoint: org.apache.servicemix.jbi.NoServiceAvailableException: Cannot find an instance of the service: {http://servicemix.org/cheese}MyConsumer] at org.apache.servicemix.components.quartz.QuartzComponent.onJobExecute( QuartzComponent.java:127) at org.apache.servicemix.components.quartz.ServiceMixJob.execute( ServiceMixJob.java:33) at org.quartz.core.JobRunShell.run(JobRunShell.java:195) at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java :520) * Nested Exception (Underlying Cause) --------------- javax.jbi.messaging.MessagingException: Failed to resolve endpoint: org.apache.servicemix.jbi.NoServiceAvailableException: Cannot find an instance of the service: {http://servicemix.org/cheese}MyConsumer at org.apache.servicemix.jbi.nmr.DefaultBroker.resolveAddress( DefaultBroker.java:380) at org.apache.servicemix.jbi.nmr.DefaultBroker.sendExchangePacket( DefaultBroker.java:286) at org.apache.servicemix.jbi.container.JBIContainer.sendExchange( JBIContainer.java:713) at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend( DeliveryChannelImpl.java:450) at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.send( DeliveryChannelImpl.java:490) at org.apache.servicemix.components.util.PojoSupport.send(PojoSupport.java :222) at org.apache.servicemix.components.quartz.QuartzComponent.onJobExecute( QuartzComponent.java:124) at org.apache.servicemix.components.quartz.ServiceMixJob.execute( ServiceMixJob.java:33) at org.quartz.core.JobRunShell.run(JobRunShell.java:195) at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java :520) Caused by: org.apache.servicemix.jbi.NoServiceAvailableException: Cannot find an instance of the service: {http://servicemix.org/cheese}MyConsumer at org.apache.servicemix.jbi.resolver.ServiceNameEndpointResolver.createServiceUnavailableException (ServiceNameEndpointResolver.java:60) at org.apache.servicemix.jbi.resolver.EndpointResolverSupport.resolveEndpoint (EndpointResolverSupport.java:39) at org.apache.servicemix.jbi.nmr.DefaultBroker.resolveAddress( DefaultBroker.java:377) ... 9 more //************************************************************** Guillaume Nodet wrote: > Does this only apply the first time the timer is sent ? > And which exception is thrown ? > > On 8/11/06, Mouilleron Cedric <[EMAIL PROTECTED]> wrote: >> >> Hi, >> >> I'm trying to use the basic example with sm-jms component (in a >> lightweight xml file). >> >> When I'm loading the configuration file, all component are activated but >> when the timer (first component) wakes up and sends the message into the >> first sm-jms component, it cannot find this jms component so I get an >> error. >> >> When I changed the input timer by an input mail poller, the sample works >> fine. >> When I changed the timer destination service to the screen, its works >> fine (message is printed on screen). >> When I changed the timer destination service to an eip-splitter, it >> fails. >> When I changed the timer destination service to an standard component >> (router for example), it works fine. >> >> The message sent by the timer are received only by ligthweigth component >> and not standard one. >> >> So, I think that the timer cannot send a message to a standard >> component. >> >> Anybody has an idea ? >> >> C�dric MOUILLERON >> >> Bull R&D
-- Cheers, Guillaume Nodet
