apache-camelactivemq-classicfluent

Camel + Java DSL Fluent builder with real ActiveMQ Broker


I'm trying to implement a WireTap with Java DSL Fluent Builders, which gives the following example code snippet.

from("direct:start")
.to("log:foo")
.wireTap("direct:tap")
.to("mock:result");

This works if I run a mock example (e.g. camel-example-jms-file). However, if I take the sample code and try to substitute a real Broker instance and Queue to replace the mock objects it fails with the error below.

from("tcp://localhost:61616")
.to("ativemq:atsUpdateQueue")
.wireTap("activemq:fdmCaptureQueue");

Then it fails

org.apache.camel.FailedToCreateRouteException: Failed to create route route2: Route(route2)[[From[tcp://localhost:61616?queue=atsUpdateQue... because of Failed to resolve endpoint: tcp://localhost:61616?queue=atsUpdateQueue due to: No component found with scheme: tcp

I've googled extensively and all the examples I've found use the virtual mock queues none seem to illustrate working with a real broker but I cannot find any documentation on the URI specification for camel.


Solution

  • Thank you for the suggestions, while useful in increasing my understanding neither actually resolved my problem. My code was wrong and for the benefit of others I should have been using the following names.

        final String sourceQueue = "activemq:queue:atsUpdateQueue";
        final String destinationQueue = "activemq:queue:atsEndPoint";
        final String wiretapQueue = "activemq:queue:fdmCaptureQueue";
    
        from(sourceQueue).wireTap(wiretapQueue).copy().to(destinationQueue);