I'm having trouble adding the ProtobufDataFormat to a route. I have
ActiveMQ BytesMessages whose bodies are Protobuf messages.

The documentation (http://camel.apache.org/protobuf.html) certainly looks
straightforward, so here's what I have:

    ProtobufDataFormat protobufFormat = new ProtobufDataFormat();
    context.addRoutes(new RouteBuilder() {
      public void configure() throws Exception {
        from("jms:queue:test)
            .unmarshal(protobufFormat)
            .process((exchange) -> {...});

But this gives me an exception:

Caused by: java.lang.IllegalArgumentException: Data format 'protobuf' could
not be created. Ensure that the data format is valid and the associated
Camel component is present on the classpath
at
org.apache.camel.model.DataFormatDefinition.getDataFormat(DataFormatDefinition.java:107)
at
org.apache.camel.model.DataFormatDefinition.getDataFormat(DataFormatDefinition.java:88)
at
org.apache.camel.model.MarshalDefinition.createProcessor(MarshalDefinition.java:177)
at
org.apache.camel.model.ProcessorDefinition.makeProcessorImpl(ProcessorDefinition.java:545)
at
org.apache.camel.model.ProcessorDefinition.makeProcessor(ProcessorDefinition.java:506)
at
org.apache.camel.model.ProcessorDefinition.addRoutes(ProcessorDefinition.java:222)
at
org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:1068)
... 42 more


Any ideas?

Also, is there a way to programatically add the ProtobufDataDefinition to
the CamelContext when I create it so I can use it in routes without
instantiating it? (I tried adding it as a serivce, registering it in the
registry, and adding it to the context's data format map, and I always got
the same exception as the one above.)

Reply via email to