On Mon, Mar 7, 2011 at 9:34 PM, lone squirrely
<[email protected]> wrote:
> 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?
>

See this page
http://camel.apache.org/tutorial-on-using-camel-in-a-web-application.html


> 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&amp;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/
>>
>



-- 
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/

Reply via email to