You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by dajevu <jd...@hireright.com> on 2006/05/01 04:11:07 UTC

Re: General Question

Thanks for the great suggestion -- I had somehow overlooked the EIP section
in the docs.

While it worked, I did get the following error, which seems innocous:

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/demo/}pipeline [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/demo/}pipeline]
        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/demo/}pipeline
        at
org.apache.servicemix.jbi.nmr.Broker.resolveAddress(Broker.java:378)
        at
org.apache.servicemix.jbi.nmr.Broker.sendExchangePacket(Broker.java:284)
        at
org.apache.servicemix.jbi.container.JBIContainer.sendExchange(JBIContainer.java:694)
        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/demo/}pipeline
        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.Broker.resolveAddress(Broker.java:375)
        ... 9 more

Below is my service.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:sm="http://servicemix.apache.org/config/1.0"
       xmlns:foo="http://servicemix.org/demo/"
       xmlns:eip="http://servicemix.apache.org/eip/1.0">
    
      
  <!-- the JBI container -->
  <sm:container id="jbi"
  		useMBeanServer="true"
  		createMBeanServer="true"
  		dumpStats="true"
  		statsInterval="10">
  		
  	<sm:activationSpecs>
  	
      <sm:activationSpec> 
        <sm:component>
          <eip:component>
            <eip:endpoints>
					<eip:pipeline service="foo:pipeline" endpoint="endpoint">
					  <eip:transformer>
					    <eip:exchange-target service="foo:routingSlip" />
					  </eip:transformer>
					  <eip:target>
					    <eip:exchange-target service="foo:trace" />
					  </eip:target>
					</eip:pipeline>
            </eip:endpoints>
          </eip:component>
        </sm:component>
      </sm:activationSpec>
      
      <sm:activationSpec> 
        <sm:component>
          <eip:component>
            <eip:endpoints>
						<eip:static-routing-slip service="foo:routingSlip"
endpoint="endpoint">
						  <eip:targets>
						    <eip:exchange-target service="foo:transformer" />
						    <eip:exchange-target service="foo:stockQuote" />
						    <eip:exchange-target service="foo:httpSender" />
						  </eip:targets>
						</eip:static-routing-slip>
            </eip:endpoints>
          </eip:component>
        </sm:component>
      </sm:activationSpec>
            
			<sm:activationSpec componentName="timer" service="foo:timer"
destinationService="foo:pipeline">
				<sm:component>
					<bean class="org.apache.servicemix.components.quartz.QuartzComponent">
						<property name="triggers">
							<map>
								<entry>
									<key>
										<bean class="org.quartz.SimpleTrigger">
											<property name="repeatInterval" value="10000" />
											<property name="repeatCount" value="1" />
										</bean>
									</key>
									<bean
										class="org.quartz.JobDetail">
										<property name="name" value="My Example Job" />
										<property name="group" value="ServiceMix" />
									</bean>
								</entry>
							</map>
						</property>
					</bean>
				</sm:component>
			</sm:activationSpec>
  		
  		
  		<!-- Route the event to a trace component that just outputs the event to
the console -->
			<sm:activationSpec componentName="trace" service="foo:trace">
				<sm:component>
					<bean class="org.apache.servicemix.components.util.TraceComponent" />
				</sm:component>
			</sm:activationSpec>
  	
			<sm:activationSpec componentName="transformer" service="foo:transformer">
				<sm:component><bean
class="org.apache.servicemix.components.xslt.XsltComponent">
					<property name="xsltResource" value="resources/virtualEdge.xslt"/>
				</bean></sm:component>
			</sm:activationSpec>
			
						<!-- post the results and monitor the output -->
			<sm:activationSpec componentName="httpSender" service="foo:httpSender">
				<sm:component><bean
class="org.apache.servicemix.components.http.HttpInvoker">
					<property name="url" value="http://localhost:8090/httpReceiver"/>
				</bean></sm:component>
			</sm:activationSpec>
  	  	
		<!-- This just invokes another service -->
  		<sm:activationSpec componentName="stockQuote" 	
  						   service="foo:stockQuote"
  						   endpoint="stockQuote">
  		  <sm:component>
  		    <bean class="org.apache.servicemix.components.saaj.SaajBinding">
  		    	<property name="soapAction"
value="http://ws.invesbot.com/GetQuote"/>
			      <property name="soapEndpoint">
				      <bean class="javax.xml.messaging.URLEndpoint">
					      <constructor-arg value="http://localhost:8085/stockquotes.asmx"/>
				      </bean>
			      </property>
  		    </bean>
  		  </sm:component>
  		</sm:activationSpec>  	  	
  		
  	 </sm:activationSpecs> 	
  </sm:container>
  
</beans>

Thanks again for your help, and I'll re-ready the JBI so that I have a more
complete understanding of the message flows.

jeff
--
View this message in context: http://www.nabble.com/General-Question-t1531899.html#a4170186
Sent from the ServiceMix - User forum at Nabble.com.


Re: General Question

Posted by Guillaume Nodet <gn...@gmail.com>.
If this happens only when you start ServiceMix, it may be that the
quartz component fires an event before the target endpoint is
activated...
Not sure if there is a simple way to avoid that though (unless you use
service units and the lwcontainer).

Cheers,
Guillaume Nodet


On 5/1/06, dajevu <jd...@hireright.com> wrote:
>
> Thanks for the great suggestion -- I had somehow overlooked the EIP section
> in the docs.
>
> While it worked, I did get the following error, which seems innocous:
>
> 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/demo/}pipeline [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/demo/}pipeline]
>         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/demo/}pipeline
>         at
> org.apache.servicemix.jbi.nmr.Broker.resolveAddress(Broker.java:378)
>         at
> org.apache.servicemix.jbi.nmr.Broker.sendExchangePacket(Broker.java:284)
>         at
> org.apache.servicemix.jbi.container.JBIContainer.sendExchange(JBIContainer.java:694)
>         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/demo/}pipeline
>         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.Broker.resolveAddress(Broker.java:375)
>         ... 9 more
>
> Below is my service.xml:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <beans xmlns:sm="http://servicemix.apache.org/config/1.0"
>        xmlns:foo="http://servicemix.org/demo/"
>        xmlns:eip="http://servicemix.apache.org/eip/1.0">
>
>
>   <!-- the JBI container -->
>   <sm:container id="jbi"
>                 useMBeanServer="true"
>                 createMBeanServer="true"
>                 dumpStats="true"
>                 statsInterval="10">
>
>         <sm:activationSpecs>
>
>       <sm:activationSpec>
>         <sm:component>
>           <eip:component>
>             <eip:endpoints>
>                                         <eip:pipeline service="foo:pipeline" endpoint="endpoint">
>                                           <eip:transformer>
>                                             <eip:exchange-target service="foo:routingSlip" />
>                                           </eip:transformer>
>                                           <eip:target>
>                                             <eip:exchange-target service="foo:trace" />
>                                           </eip:target>
>                                         </eip:pipeline>
>             </eip:endpoints>
>           </eip:component>
>         </sm:component>
>       </sm:activationSpec>
>
>       <sm:activationSpec>
>         <sm:component>
>           <eip:component>
>             <eip:endpoints>
>                                                 <eip:static-routing-slip service="foo:routingSlip"
> endpoint="endpoint">
>                                                   <eip:targets>
>                                                     <eip:exchange-target service="foo:transformer" />
>                                                     <eip:exchange-target service="foo:stockQuote" />
>                                                     <eip:exchange-target service="foo:httpSender" />
>                                                   </eip:targets>
>                                                 </eip:static-routing-slip>
>             </eip:endpoints>
>           </eip:component>
>         </sm:component>
>       </sm:activationSpec>
>
>                         <sm:activationSpec componentName="timer" service="foo:timer"
> destinationService="foo:pipeline">
>                                 <sm:component>
>                                         <bean class="org.apache.servicemix.components.quartz.QuartzComponent">
>                                                 <property name="triggers">
>                                                         <map>
>                                                                 <entry>
>                                                                         <key>
>                                                                                 <bean class="org.quartz.SimpleTrigger">
>                                                                                         <property name="repeatInterval" value="10000" />
>                                                                                         <property name="repeatCount" value="1" />
>                                                                                 </bean>
>                                                                         </key>
>                                                                         <bean
>                                                                                 class="org.quartz.JobDetail">
>                                                                                 <property name="name" value="My Example Job" />
>                                                                                 <property name="group" value="ServiceMix" />
>                                                                         </bean>
>                                                                 </entry>
>                                                         </map>
>                                                 </property>
>                                         </bean>
>                                 </sm:component>
>                         </sm:activationSpec>
>
>
>                 <!-- Route the event to a trace component that just outputs the event to
> the console -->
>                         <sm:activationSpec componentName="trace" service="foo:trace">
>                                 <sm:component>
>                                         <bean class="org.apache.servicemix.components.util.TraceComponent" />
>                                 </sm:component>
>                         </sm:activationSpec>
>
>                         <sm:activationSpec componentName="transformer" service="foo:transformer">
>                                 <sm:component><bean
> class="org.apache.servicemix.components.xslt.XsltComponent">
>                                         <property name="xsltResource" value="resources/virtualEdge.xslt"/>
>                                 </bean></sm:component>
>                         </sm:activationSpec>
>
>                                                 <!-- post the results and monitor the output -->
>                         <sm:activationSpec componentName="httpSender" service="foo:httpSender">
>                                 <sm:component><bean
> class="org.apache.servicemix.components.http.HttpInvoker">
>                                         <property name="url" value="http://localhost:8090/httpReceiver"/>
>                                 </bean></sm:component>
>                         </sm:activationSpec>
>
>                 <!-- This just invokes another service -->
>                 <sm:activationSpec componentName="stockQuote"
>                                                    service="foo:stockQuote"
>                                                    endpoint="stockQuote">
>                   <sm:component>
>                     <bean class="org.apache.servicemix.components.saaj.SaajBinding">
>                         <property name="soapAction"
> value="http://ws.invesbot.com/GetQuote"/>
>                               <property name="soapEndpoint">
>                                       <bean class="javax.xml.messaging.URLEndpoint">
>                                               <constructor-arg value="http://localhost:8085/stockquotes.asmx"/>
>                                       </bean>
>                               </property>
>                     </bean>
>                   </sm:component>
>                 </sm:activationSpec>
>
>          </sm:activationSpecs>
>   </sm:container>
>
> </beans>
>
> Thanks again for your help, and I'll re-ready the JBI so that I have a more
> complete understanding of the message flows.
>
> jeff
> --
> View this message in context: http://www.nabble.com/General-Question-t1531899.html#a4170186
> Sent from the ServiceMix - User forum at Nabble.com.
>
>