camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Claus Ibsen <claus.ib...@gmail.com>
Subject Re: java.lang.IllegalArgumentException: Cannot add component as its already previously added: jms
Date Mon, 25 Apr 2016 09:25:01 GMT
Maybe use CDI @Produces to setup that component and with @Named you
can assign the name

@Produces
@Named("jms")
public Component jmsComponent() {
   ...
}

On Sat, Apr 23, 2016 at 1:54 PM, nicolasduminil
<nicolas.duminil@simplex-software.fr> wrote:
> Hello,
>
> I'm trying to run a simple route copying a file content to a JMS destination
> with ActiveMQ. here is the code :
>
> public class MyRoutes extends RouteBuilder {
>
>   @Inject
>   @Uri("file:data/inbox?noop=true")
>   private Endpoint inputEndpoint;
>
>   @Inject
>   @Uri("jms:incommingData")
>   private Endpoint resultEndpoint;
>
>   @Override
>   public void configure() {
>     ConnectionFactory connectionFactory = new
> ActiveMQConnectionFactory("vm://localhost");
>     this.getContext().addComponent("jms",
> JmsComponent.jmsComponentAutoAcknowledge(connectionFactory));
>     from(inputEndpoint).to("bean:counterBean").to(resultEndpoint);
>   }
> }
>
> Running this route raises the following exception:
>
> [ERROR] Caused by: java.lang.IllegalArgumentException: Cannot add component
> as its already previously added: jms
> [ERROR] at
> org.apache.camel.impl.DefaultCamelContext.addComponent(DefaultCamelContext.java:370)
> [ERROR] at
> fr.simplex_software.tests.camel.copy_file_to_jms_cdi.MyRoutes.configure(MyRoutes.java:27)
> [ERROR] at
> org.apache.camel.builder.RouteBuilder.checkInitialized(RouteBuilder.java:403)
> [ERROR] at
> org.apache.camel.builder.RouteBuilder.configureRoutes(RouteBuilder.java:343)
> [ERROR] at
> org.apache.camel.builder.RouteBuilder.addRoutesToCamelContext(RouteBuilder.java:326)
> [ERROR] at
> org.apache.camel.impl.DefaultCamelContext$1.call(DefaultCamelContext.java:835)
> [ERROR] at
> org.apache.camel.impl.DefaultCamelContext$1.call(DefaultCamelContext.java:832)
> [ERROR] at
> org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:2867)
> [ERROR] at
> org.apache.camel.impl.DefaultCamelContext.addRoutes(DefaultCamelContext.java:832)
> [ERROR] at
> org.apache.camel.impl.DefaultCamelContext$Proxy$_$$_WeldClientProxy.addRoutes(Unknown
> Source)
> [ERROR] at
> org.apache.camel.cdi.CdiCamelExtension.addRouteToContext(CdiCamelExtension.java:325)
> [ERROR] ... 33 more
>
> I've tried to comment out the line that adds the JMS component, as the
> exception is saying that the componenet already exists, but then I have the
> following:
>
> java.lang.IllegalArgumentException: connectionFactory must be specified
>         at org.apache.camel.util.ObjectHelper.notNull(ObjectHelper.java:308)
>         at
> org.apache.camel.component.jms.JmsConfiguration.createConnectionFactory(JmsConfiguration.java:1500)
>         at
> org.apache.camel.component.jms.JmsConfiguration.getConnectionFactory(JmsConfiguration.java:689)
>         at
> org.apache.camel.component.jms.JmsConfiguration.createTemplateConnectionFactory(JmsConfiguration.java:1517)
>
> So, if I cannot add it because it exists already and I cannot not add it
> because then the connection factory is not defined. I would need to define
> the connection factory without adding the component but I dont find how.
>
> Many thanks in advance for any help.
>
> Kind regards,
>
> Nicolas
>
>
>
> --
> View this message in context: http://camel.465427.n5.nabble.com/java-lang-IllegalArgumentException-Cannot-add-component-as-its-already-previously-added-jms-tp5781607.html
> Sent from the Camel - Users mailing list archive at Nabble.com.



-- 
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2

Mime
View raw message