Thank you for pointing this out (and for the tutorial!). I get so lost in the documentation for spring and camel.
I now have both my server and client building and coming up. I (think) i see them get a ref to the AMQ Broker but what I don't see is the run happening. I took the client in the tutorial and just put essentially a run on it - it just intermittently sends a msg. I bundled this up into a war and deployed it out to tomcat. What I am not seeing happen is the "main" get called. Is there some way that I can specify what to run, to start the service? On Fri, Mar 4, 2011 at 11:15 PM, Claus Ibsen <[email protected]> wrote: > Hi > > There is this JMS tutorial which has a client and server and sends data > to/from > http://camel.apache.org/tutorial-jmsremoting.html > > In your example you use "activemq" as scheme in your Camel routes. > > And when you do that, then your ActiveMQComponent <bean> should have > the same id. > In one of your XML files it does not. > > That mean Camel will use the default AMQComponent (with default > settings) which happens to be available since you embedded a local AMQ > broker as well. So that's why it tries port 61616 which is the default > port. > > > On Fri, Mar 4, 2011 at 10:03 PM, lone squirrely > <[email protected]> wrote: >> Hey - I have tried to figure this problem out but I am still stuck! I >> am trying to write a simple program pair that will just bounce strings >> around! I have a simple "bounceService" and a simple "senderService". >> The bounceService just needs to start a activemqBroker and hookup to >> some queue. The other just connects from a different machine (or the >> same...) and sends a message. It just wants to see that back. >> >> I am unsure if the messages are getting through. Rather, I am pretty >> sure they aren't... >> If you could take a quick peek, it would be immensely helpful. >> >> >> >> First! the bouceService: >> --------------------------- SPRING APPLICATION CONTEXT >> ------------------------------------- >> <?xml version="1.0" encoding="UTF-8"?> >> <beans xmlns="http://www.springframework.org/schema/beans" >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >> xmlns:context="http://www.springframework.org/schema/context" >> xmlns:camel="http://camel.apache.org/schema/spring" >> xmlns:amq="http://activemq.apache.org/schema/core" >> xmlns:p="http://www.springframework.org/schema/p" >> xsi:schemaLocation=" >> http://www.springframework.org/schema/beans >> http://www.springframework.org/schema/beans/spring-beans.xsd >> http://www.springframework.org/schema/context >> http://www.springframework.org/schema/context/spring-context.xsd >> http://activemq.apache.org/schema/core >> http://activemq.apache.org/schema/core/activemq-core.xsd >> http://camel.apache.org/schema/spring >> http://camel.apache.org/schema/spring/camel-spring.xsd >> "> >> >> <!-- >> xmlns:broker="http://activemq.apache.org/schema/core" >> --> >> <context:component-scan base-package="com" /> >> <context:property-placeholder location="classpath:properties/*.properties" >> /> >> >> <bean id="bounceService" class="com.service.BounceService"> >> <constructor-arg index="0"><ref bean="testCamelContext" >> /></constructor-arg> >> </bean> >> >> <camel:camelContext id="testCamelContext"> >> <!-- >> <camel:package>com.camel</camel:package> >> --> >> <camel:route id="SIMPLE_BOUNCE"> >> <camel:description> >> Takes a message from the amq broker and puts turns it back around. >> </camel:description> >> <camel:from uri="activemq:test:bounce" /> >> <camel:bean ref="bounceService" method="bounceString" /> >> </camel:route> >> </camel:camelContext> >> >> <!-- Setup a broker for testing --> >> <!-- >> <amq:transportConnector name="stomp" uri="tcp://localhost:61613" /> >> --> >> <amq:broker persistent="false"> >> <amq:transportConnectors> >> <amq:transportConnector name="openWire" uri="tcp://localhost:9091" /> >> </amq:transportConnectors> >> </amq:broker> >> >> <bean id="activemqBroker" >> class="org.apache.activemq.camel.component.ActiveMQComponent"> >> <property name="brokerURL" value="tcp://localhost:9091" /> >> </bean> >> >> <!-- Traces flow of messages --> >> <bean id="traceFormatter" >> class="org.apache.camel.processor.interceptor.DefaultTraceFormatter"> >> <property name="showBody" value="false" /> >> <property name="showBodyType" value="true" /> >> <property name="showBreadCrumb" value="false" /> >> <property name="maxChars" value="1000" /> >> </bean> >> </beans> >> >> --------------------------------------- THE bounceService >> -------------------------------------------- >> package com.service; >> >> import org.apache.camel.CamelContext; >> import org.apache.camel.Handler; >> import org.apache.camel.ProducerTemplate; >> import org.apache.camel.Route; >> import org.springframework.stereotype.Service; >> >> @Service(value = "bounceService") >> public class BounceService { >> >> public BounceService (CamelContext camelContext) { >> System.out.println ("***************************************"); >> >> System.out.println ("Camel context: " + camelContext.getName ()); >> for (Route r : camelContext.getRoutes ()) { >> System.out.println (r.getEndpoint ()); >> } >> >> System.out.println ("***************************************"); >> } >> >> @Handler >> public String bounceString (String inStr) { >> String outStr = "RET_" + inStr; >> >> System.out.println ("---------------- START ----------------"); >> System.out.println ("Got this message: " + inStr); >> System.out.println ("Returning this message " + outStr); >> System.out.println ("----------------- END -----------------"); >> >> return outStr; >> } >> } >> >> >> On to the senderService: >> ------------------------------------- SENDER SERVICE >> SPRING---------------------------------------- >> >> <?xml version="1.0" encoding="UTF-8"?> >> <beans xmlns="http://www.springframework.org/schema/beans" >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >> xmlns:context="http://www.springframework.org/schema/context" >> xmlns:camel="http://camel.apache.org/schema/spring" >> xmlns:amq="http://activemq.apache.org/schema/core" >> xmlns:p="http://www.springframework.org/schema/p" >> xsi:schemaLocation=" >> http://www.springframework.org/schema/beans >> http://www.springframework.org/schema/beans/spring-beans.xsd >> http://www.springframework.org/schema/context >> http://www.springframework.org/schema/context/spring-context.xsd >> http://activemq.apache.org/schema/core >> http://activemq.apache.org/schema/core/activemq-core.xsd >> http://camel.apache.org/schema/spring >> http://camel.apache.org/schema/spring/camel-spring.xsd >> "> >> <context:component-scan base-package="com" /> >> <context:property-placeholder location="classpath:properties/*.properties" >> /> >> >> <bean id="senderService" class="com.service.SenderService"> >> <constructor-arg index="0"><ref bean="testCamelContext" >> /></constructor-arg> >> </bean> >> >> <camel:camelContext id="testCamelContext"> >> <camel:package>com.camel</camel:package> >> <camel:route id="Timer_to_request"> >> <camel:from uri="timer://testBounce?fixedRate=true&period=2000" /> >> <camel:to uri="bean:senderService?method=sendString" /> >> </camel:route> >> >> <camel:route id="service_to_bounce"> >> <camel:from uri="bean:senderService?method=sendString" /> >> <camel:to uri="activemq:test:bounce" /> >> </camel:route> >> </camel:camelContext> >> >> <!-- Setup a broker for testing --> >> <!-- >> <amq:transportConnector name="stomp" uri="tcp://localhost:61613" /> >> <amq:broker> >> <amq:transportConnectors> >> <amq:transportConnector name="openWire" uri="tcp://localhost:9091" /> >> </amq:transportConnectors> >> </amq:broker> >> --> >> >> <bean id="activemqBroker" >> class="org.apache.activemq.camel.component.ActiveMQComponent"> >> <property name="brokerURL" value="tcp://localhost:9091" /> >> </bean> >> >> <!-- Traces flow of messages --> >> <bean id="traceFormatter" >> class="org.apache.camel.processor.interceptor.DefaultTraceFormatter"> >> <property name="showBody" value="false" /> >> <property name="showBodyType" value="true" /> >> <property name="showBreadCrumb" value="false" /> >> <property name="maxChars" value="1000" /> >> </bean> >> </beans> >> >> ---------------------------------------------------- the senderService >> ------------------------------------------------------------------------------------------------------------------ >> >> package com.service; >> >> import org.apache.camel.CamelContext; >> import org.apache.camel.Handler; >> import org.apache.camel.ProducerTemplate; >> import org.apache.camel.Route; >> import org.springframework.stereotype.Service; >> >> @Service(value = "senderService") >> public class SenderService { >> >> public SenderService (CamelContext camelContext) { >> System.out.println ("***************************************"); >> >> System.out.println ("Camel context: " + camelContext.getName ()); >> for (Route r : camelContext.getRoutes ()) { >> System.out.println (r.getEndpoint ()); >> } >> >> >> System.out.println ("***************************************"); >> } >> >> @Handler >> public String sendString () { >> return "This is a dumb test - it should just do a round Trip..."; >> } >> >> @Handler >> public void receiveString (String inStr) { >> System.out.println ("---------------- START ----------------"); >> System.out.println ("Got this message: " + inStr); >> System.out.println ("----------------- END -----------------"); >> } >> >> /** >> * called by some event...that triggers the request >> */ >> public void causeInteraction () { >> // some event... >> sendString (); >> } >> } >> >> The "openWire" connection seems to take: (from bounceService) >> 12:31:43,877 INFO TransportServerThreadSupport:72 - Listening for >> connections at: tcp://northstar.appsig.com:9091 >> 12:31:43,877 INFO TransportConnector:252 - Connector openWire Started >> >> but i get this error (scrolling): >> 12:31:44,466 DEBUG SpringCamelContext:1842 - Route: SIMPLE_BOUNCE >>> >> EventDrivenConsumerRoute[Endpoint[activemq://test:bounce] >> ->instrumentation:route[UnitOfWork(Channel[BeanProcessor[bean: >> bounceService]])]] >> 12:31:44,466 DEBUG SpringCamelContext:1846 - Starting consumer (order: >> 1000) on route: SIMPLE_BOUNCE >> 12:31:44,474 DEBUG DefaultManagementAgent:314 - Registered MBean with >> objectname: >> org.apache.camel:context=northstar.appsig.com/testCamelContext,type=consumers,name=JmsConsumer(0x1c90a278) >> 12:31:44,474 DEBUG JmsConsumer:91 - Starting consumer: >> Consumer[activemq://test:bounce] >> 12:31:44,486 DEBUG FailoverTransport:663 - Reconnect was triggered but >> transport is not started yet >> . Wait for start to connect the transport. >> 12:31:44,495 DEBUG FailoverTransport:297 - Started. >> 12:31:44,496 DEBUG FailoverTransport:656 - Waking up reconnect task >> 12:31:44,497 DEBUG FailoverTransport:686 - urlList >> connectionList:[tcp://localhost:61616] >> 12:31:44,499 DEBUG FailoverTransport:840 - Attempting connect to: >> tcp://localhost:61616 >> 12:31:44,503 DEBUG DefaultMessageListenerContainer:372 - Established >> shared JMS Connection >> 12:31:44,504 DEBUG DefaultMessageListenerContainer:539 - Resumed >> paused task: org.springframework.j >> ms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker@64b25680 >> 12:31:44,544 DEBUG FailoverTransport:884 - Connect fail to: >> tcp://localhost:61616, reason: java.net.ConnectException: Connection >> refused >> 12:31:44,545 DEBUG TcpTransport:508 - Stopping transport >> tcp://localhost:61616 >> >> I am unsure why it is trying to use localhost:61616???? >> >> And i don't see a connection in the senderService, only the timer going >> off... >> Again any help would be great, I am pretty sure this is just >> originating from my lack of knowledge. >> >> Thanks in advance!!! >> > > > > -- > Claus Ibsen > ----------------- > FuseSource > Email: [email protected] > Web: http://fusesource.com > Twitter: davsclaus > Blog: http://davsclaus.blogspot.com/ > Author of Camel in Action: http://www.manning.com/ibsen/ >
