You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Mark <el...@gmail.com> on 2010/07/28 19:51:48 UTC
load a route into ActiveMQ via java
I am working to build a router in ActiveMQ. From what I have read I should
be able to package my class in a jar file, copy the jar file into
$ACTIVEMQ_HOME/lib and then restart. Here is my simple router code:
public class MyRouter extends RouteBuilder {
public MyRouter() throws Exception {
CamelContext context = new DefaultCamelContext();
ConnectionFactory connectionFactory = new
ActiveMQConnectionFactory("tcp://localhost:61616");
context.addComponent("connectionFactory",
JmsComponent.jmsComponentAutoAcknowledge(connectionFactory));
}
@Override
public void configure() throws Exception {
from("jms:whatever").to("jms:junk");
}
}
I am getting an exception in ActiveMQ upon startup:
ERROR: java.lang.RuntimeException: Failed to execute start task. Reason:
org.apache.camel.RuntimeCamelException: java.lang.IllegalArgumentException:
connectionFactory must be specified
java.lang.RuntimeException: Failed to execute start task. Reason:
org.apache.camel.RuntimeCamelException: java.lang.IllegalArgumentException:
connectionFactory must be specified
at
org.apache.activemq.console.command.StartCommand.runTask(StartCommand.java:98)
at
org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:57)
at
org.apache.activemq.console.command.ShellCommand.runTask(ShellCommand.java:136)
at
org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:57)
at
org.apache.activemq.console.command.ShellCommand.main(ShellCommand.java:82)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.activemq.console.Main.runTaskClass(Main.java:251)
at org.apache.activemq.console.Main.main(Main.java:107)
Could someone help me out as to what I can do to fix this.
Thanks
Re: load a route into ActiveMQ via java
Posted by Claus Ibsen <cl...@gmail.com>.
Hi
The ActiveMQ in Action book shows how to use Camel in chapter 11.7
On Wed, Jul 28, 2010 at 8:08 PM, Mark <el...@gmail.com> wrote:
> Thanks,
>
> I made that change an ActiveMQ starts up. The route does not show up in the
> camel admin page, so I am not sure if its being loaded properly. Plus when
> I send a message to "whatever", the listener on "junk" does not receive the
> message. The listener on "whatever" does receive the message though.
>
> I think I still have something wrong.
>
>
>
> On Wed, Jul 28, 2010 at 1:54 PM, Claus Ibsen <cl...@gmail.com> wrote:
>
>> On Wed, Jul 28, 2010 at 7:51 PM, Mark <el...@gmail.com> wrote:
>> > I am working to build a router in ActiveMQ. From what I have read I
>> should
>> > be able to package my class in a jar file, copy the jar file into
>> > $ACTIVEMQ_HOME/lib and then restart. Here is my simple router code:
>> >
>> > public class MyRouter extends RouteBuilder {
>> >
>> > public MyRouter() throws Exception {
>> >
>> > CamelContext context = new DefaultCamelContext();
>> > ConnectionFactory connectionFactory = new
>> > ActiveMQConnectionFactory("tcp://localhost:61616");
>> > context.addComponent("connectionFactory",
>> > JmsComponent.jmsComponentAutoAcknowledge(connectionFactory));
>> > }
>> >
>> > @Override
>> > public void configure() throws Exception {
>> >
>> > from("jms:whatever").to("jms:junk");
>> > }
>> > }
>> >
>>
>> When you add the component to Camel you have to use the name "jms" as
>> its the name you use in the Camel route
>>
>> > context.addComponent("connectionFactory",
>> > JmsComponent.jmsComponentAutoAcknowledge(connectionFactory));
>>
>> Should then be
>>
>> context.addComponent("jms",
>> JmsComponent.jmsComponentAutoAcknowledge(connectionFactory));
>>
>>
>> BTW you can name it what you like, instead of jms you can use activemq
>> as some of the examples use.
>>
>>
>>
>> >
>> > I am getting an exception in ActiveMQ upon startup:
>> > ERROR: java.lang.RuntimeException: Failed to execute start task. Reason:
>> > org.apache.camel.RuntimeCamelException:
>> java.lang.IllegalArgumentException:
>> > connectionFactory must be specified
>> > java.lang.RuntimeException: Failed to execute start task. Reason:
>> > org.apache.camel.RuntimeCamelException:
>> java.lang.IllegalArgumentException:
>> > connectionFactory must be specified
>> > at
>> >
>> org.apache.activemq.console.command.StartCommand.runTask(StartCommand.java:98)
>> > at
>> >
>> org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:57)
>> > at
>> >
>> org.apache.activemq.console.command.ShellCommand.runTask(ShellCommand.java:136)
>> > at
>> >
>> org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:57)
>> > at
>> >
>> org.apache.activemq.console.command.ShellCommand.main(ShellCommand.java:82)
>> > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> > at
>> >
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>> > at
>> >
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>> > at java.lang.reflect.Method.invoke(Method.java:597)
>> > at org.apache.activemq.console.Main.runTaskClass(Main.java:251)
>> > at org.apache.activemq.console.Main.main(Main.java:107)
>> >
>> >
>> > Could someone help me out as to what I can do to fix this.
>> >
>> > Thanks
>> >
>>
>>
>>
>> --
>> Claus Ibsen
>> Apache Camel Committer
>>
>> Author of Camel in Action: http://www.manning.com/ibsen/
>> Open Source Integration: http://fusesource.com
>> Blog: http://davsclaus.blogspot.com/
>> Twitter: http://twitter.com/davsclaus
>>
>
--
Claus Ibsen
Apache Camel Committer
Author of Camel in Action: http://www.manning.com/ibsen/
Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus
Re: load a route into ActiveMQ via java
Posted by Mark <el...@gmail.com>.
Thanks,
I made that change an ActiveMQ starts up. The route does not show up in the
camel admin page, so I am not sure if its being loaded properly. Plus when
I send a message to "whatever", the listener on "junk" does not receive the
message. The listener on "whatever" does receive the message though.
I think I still have something wrong.
On Wed, Jul 28, 2010 at 1:54 PM, Claus Ibsen <cl...@gmail.com> wrote:
> On Wed, Jul 28, 2010 at 7:51 PM, Mark <el...@gmail.com> wrote:
> > I am working to build a router in ActiveMQ. From what I have read I
> should
> > be able to package my class in a jar file, copy the jar file into
> > $ACTIVEMQ_HOME/lib and then restart. Here is my simple router code:
> >
> > public class MyRouter extends RouteBuilder {
> >
> > public MyRouter() throws Exception {
> >
> > CamelContext context = new DefaultCamelContext();
> > ConnectionFactory connectionFactory = new
> > ActiveMQConnectionFactory("tcp://localhost:61616");
> > context.addComponent("connectionFactory",
> > JmsComponent.jmsComponentAutoAcknowledge(connectionFactory));
> > }
> >
> > @Override
> > public void configure() throws Exception {
> >
> > from("jms:whatever").to("jms:junk");
> > }
> > }
> >
>
> When you add the component to Camel you have to use the name "jms" as
> its the name you use in the Camel route
>
> > context.addComponent("connectionFactory",
> > JmsComponent.jmsComponentAutoAcknowledge(connectionFactory));
>
> Should then be
>
> context.addComponent("jms",
> JmsComponent.jmsComponentAutoAcknowledge(connectionFactory));
>
>
> BTW you can name it what you like, instead of jms you can use activemq
> as some of the examples use.
>
>
>
> >
> > I am getting an exception in ActiveMQ upon startup:
> > ERROR: java.lang.RuntimeException: Failed to execute start task. Reason:
> > org.apache.camel.RuntimeCamelException:
> java.lang.IllegalArgumentException:
> > connectionFactory must be specified
> > java.lang.RuntimeException: Failed to execute start task. Reason:
> > org.apache.camel.RuntimeCamelException:
> java.lang.IllegalArgumentException:
> > connectionFactory must be specified
> > at
> >
> org.apache.activemq.console.command.StartCommand.runTask(StartCommand.java:98)
> > at
> >
> org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:57)
> > at
> >
> org.apache.activemq.console.command.ShellCommand.runTask(ShellCommand.java:136)
> > at
> >
> org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:57)
> > at
> >
> org.apache.activemq.console.command.ShellCommand.main(ShellCommand.java:82)
> > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> > at
> >
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> > at
> >
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> > at java.lang.reflect.Method.invoke(Method.java:597)
> > at org.apache.activemq.console.Main.runTaskClass(Main.java:251)
> > at org.apache.activemq.console.Main.main(Main.java:107)
> >
> >
> > Could someone help me out as to what I can do to fix this.
> >
> > Thanks
> >
>
>
>
> --
> Claus Ibsen
> Apache Camel Committer
>
> Author of Camel in Action: http://www.manning.com/ibsen/
> Open Source Integration: http://fusesource.com
> Blog: http://davsclaus.blogspot.com/
> Twitter: http://twitter.com/davsclaus
>
Re: load a route into ActiveMQ via java
Posted by Claus Ibsen <cl...@gmail.com>.
On Wed, Jul 28, 2010 at 7:51 PM, Mark <el...@gmail.com> wrote:
> I am working to build a router in ActiveMQ. From what I have read I should
> be able to package my class in a jar file, copy the jar file into
> $ACTIVEMQ_HOME/lib and then restart. Here is my simple router code:
>
> public class MyRouter extends RouteBuilder {
>
> public MyRouter() throws Exception {
>
> CamelContext context = new DefaultCamelContext();
> ConnectionFactory connectionFactory = new
> ActiveMQConnectionFactory("tcp://localhost:61616");
> context.addComponent("connectionFactory",
> JmsComponent.jmsComponentAutoAcknowledge(connectionFactory));
> }
>
> @Override
> public void configure() throws Exception {
>
> from("jms:whatever").to("jms:junk");
> }
> }
>
When you add the component to Camel you have to use the name "jms" as
its the name you use in the Camel route
> context.addComponent("connectionFactory",
> JmsComponent.jmsComponentAutoAcknowledge(connectionFactory));
Should then be
context.addComponent("jms",
JmsComponent.jmsComponentAutoAcknowledge(connectionFactory));
BTW you can name it what you like, instead of jms you can use activemq
as some of the examples use.
>
> I am getting an exception in ActiveMQ upon startup:
> ERROR: java.lang.RuntimeException: Failed to execute start task. Reason:
> org.apache.camel.RuntimeCamelException: java.lang.IllegalArgumentException:
> connectionFactory must be specified
> java.lang.RuntimeException: Failed to execute start task. Reason:
> org.apache.camel.RuntimeCamelException: java.lang.IllegalArgumentException:
> connectionFactory must be specified
> at
> org.apache.activemq.console.command.StartCommand.runTask(StartCommand.java:98)
> at
> org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:57)
> at
> org.apache.activemq.console.command.ShellCommand.runTask(ShellCommand.java:136)
> at
> org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:57)
> at
> org.apache.activemq.console.command.ShellCommand.main(ShellCommand.java:82)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at org.apache.activemq.console.Main.runTaskClass(Main.java:251)
> at org.apache.activemq.console.Main.main(Main.java:107)
>
>
> Could someone help me out as to what I can do to fix this.
>
> Thanks
>
--
Claus Ibsen
Apache Camel Committer
Author of Camel in Action: http://www.manning.com/ibsen/
Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus