>>>到[messageProcessor],apache-camel,jms,Apache Camel,Jms" /> >>>到[messageProcessor],apache-camel,jms,Apache Camel,Jms" />

Apache camel apache骆驼rdsl中的jms队列 package com.att.ajsc.deviceeventrouter; 导入org.apache.camel.Exchange; 导入org.apache.camel.Processor; 导入org.springframework.stereotype.Component; @组件(“消息处理器”) 公共类MessageProcessor实现处理器{ 公共作废进程(Exchange)引发异常{ System.out.println(“----”+exchange.getIn().getBody()); exchange.getOut().setBody(exchange.getIn().getBody()); } } 导入javax.jms.ConnectionFactory; 导入org.apache.activemq.ActiveMQConnectionFactory; 导入org.apache.camel.CamelContext; 导入org.apache.camel.ProducerTemplate; 导入org.apache.camel.builder.RouteBuilder; 导入org.apache.camel.component.jms.JmsComponent; 导入org.apache.camel.impl.DefaultCamelContext; 导入org.apache.camel.util.jndi.JndiContext; /** *一个示例类,用于演示Camel背后的一些基础知识。这 *示例将一些文本消息发送到JMS队列,使用它们并 *将它们持久化到磁盘 */ 公共最终类CamelJmsToFileExample{ 私有CamelJmsToFileExample(){ } 公共静态void main(字符串args[])引发异常{ /*JndiContext JndiContext=新的JndiContext(); bind(“myBean”,newmybean()); bind(“mongoClient”,新的CommonDbConnection())*/ CamelContext=新的DefaultCamelContext(); ConnectionFactory ConnectionFactory=新的ActiveMQConnectionFactory(“tcp://localhost:61616"); addComponent(“测试jms”,JmsComponent.jmsComponentAutoAcknowledge(connectionFactory)); CustomMessage CustomMessage=新建CustomMessage(); customMessage.setId(“123”); addRoutes(新RouteBuilder(){ public void configure(){ System.out.println(“配置内部”); 从(“test-jms:queue:test.queue”)到(“messageProcessor”); } }); ProducerTemplate=context.createProducerTemplate(); context.start(); sendBody(“testjms:queue:test.queue”,customMessage); } } pom.xml 4.0.0 电子邮件服务 电子邮件服务 0.0.1-快照 电子邮件服务 org.apache.camel 驼芯 2.15.1 org.apache.camel 骆驼河 2.15.1 org.apache.camel 骆驼jms 2.15.1 org.apache.activemq activemq骆驼 5.6.0 org.apache.activemq activemq池 5.11.1 org.mongodb mongo java驱动程序 3.4.2 org.apache.camel 骆驼mongodb 2.13.1 org.springframework.integration spring集成mongodb 4.3.8.1发布 org.springframework.boot 弹簧靴自动配置 1.5.2.1发布 org.apache.camel 驼色弹簧靴 2.15.1 我面临的例外情况: SLF4J:未能加载类“org.SLF4J.impl.StaticLoggerBinder”。 SLF4J:默认为无操作(NOP)记录器实现 SLF4J:参见http://www.slf4j.org/codes.html#StaticLoggerBinder 详情请参阅。 内部配置 线程“main”org.apache.camel.FailedToCreateRouteException中出现异常:未能在以下位置创建路由route1:>>>>到[messageProcessor]

Apache camel apache骆驼rdsl中的jms队列 package com.att.ajsc.deviceeventrouter; 导入org.apache.camel.Exchange; 导入org.apache.camel.Processor; 导入org.springframework.stereotype.Component; @组件(“消息处理器”) 公共类MessageProcessor实现处理器{ 公共作废进程(Exchange)引发异常{ System.out.println(“----”+exchange.getIn().getBody()); exchange.getOut().setBody(exchange.getIn().getBody()); } } 导入javax.jms.ConnectionFactory; 导入org.apache.activemq.ActiveMQConnectionFactory; 导入org.apache.camel.CamelContext; 导入org.apache.camel.ProducerTemplate; 导入org.apache.camel.builder.RouteBuilder; 导入org.apache.camel.component.jms.JmsComponent; 导入org.apache.camel.impl.DefaultCamelContext; 导入org.apache.camel.util.jndi.JndiContext; /** *一个示例类,用于演示Camel背后的一些基础知识。这 *示例将一些文本消息发送到JMS队列,使用它们并 *将它们持久化到磁盘 */ 公共最终类CamelJmsToFileExample{ 私有CamelJmsToFileExample(){ } 公共静态void main(字符串args[])引发异常{ /*JndiContext JndiContext=新的JndiContext(); bind(“myBean”,newmybean()); bind(“mongoClient”,新的CommonDbConnection())*/ CamelContext=新的DefaultCamelContext(); ConnectionFactory ConnectionFactory=新的ActiveMQConnectionFactory(“tcp://localhost:61616"); addComponent(“测试jms”,JmsComponent.jmsComponentAutoAcknowledge(connectionFactory)); CustomMessage CustomMessage=新建CustomMessage(); customMessage.setId(“123”); addRoutes(新RouteBuilder(){ public void configure(){ System.out.println(“配置内部”); 从(“test-jms:queue:test.queue”)到(“messageProcessor”); } }); ProducerTemplate=context.createProducerTemplate(); context.start(); sendBody(“testjms:queue:test.queue”,customMessage); } } pom.xml 4.0.0 电子邮件服务 电子邮件服务 0.0.1-快照 电子邮件服务 org.apache.camel 驼芯 2.15.1 org.apache.camel 骆驼河 2.15.1 org.apache.camel 骆驼jms 2.15.1 org.apache.activemq activemq骆驼 5.6.0 org.apache.activemq activemq池 5.11.1 org.mongodb mongo java驱动程序 3.4.2 org.apache.camel 骆驼mongodb 2.13.1 org.springframework.integration spring集成mongodb 4.3.8.1发布 org.springframework.boot 弹簧靴自动配置 1.5.2.1发布 org.apache.camel 驼色弹簧靴 2.15.1 我面临的例外情况: SLF4J:未能加载类“org.SLF4J.impl.StaticLoggerBinder”。 SLF4J:默认为无操作(NOP)记录器实现 SLF4J:参见http://www.slf4j.org/codes.html#StaticLoggerBinder 详情请参阅。 内部配置 线程“main”org.apache.camel.FailedToCreateRouteException中出现异常:未能在以下位置创建路由route1:>>>>到[messageProcessor],apache-camel,jms,Apache Camel,Jms,消息处理器是一个字符串,例如 package com.att.ajsc.deviceeventrouter; import org.apache.camel.Exchange; import org.apache.camel.Processor; import org.springframework.stereotype.Component; @Component("messageProcessor") public class MessageProcessor implements Pro

消息处理器是一个字符串,例如

package com.att.ajsc.deviceeventrouter;

import org.apache.camel.Exchange;
import org.apache.camel.Processor;
import org.springframework.stereotype.Component;

@Component("messageProcessor")
public class MessageProcessor implements Processor {
    public void process(Exchange exchange) throws Exception {
        System.out.println("-----"+exchange.getIn().getBody());
        exchange.getOut().setBody(exchange.getIn().getBody());
    }

}


        import javax.jms.ConnectionFactory;

        import org.apache.activemq.ActiveMQConnectionFactory;
        import org.apache.camel.CamelContext;
        import org.apache.camel.ProducerTemplate;
        import org.apache.camel.builder.RouteBuilder;
        import org.apache.camel.component.jms.JmsComponent;
        import org.apache.camel.impl.DefaultCamelContext;
        import org.apache.camel.util.jndi.JndiContext;

        /**
         * An example class for demonstrating some of the basics behind Camel. This
         * example sends some text messages on to a JMS Queue, consumes them and
         * persists them to disk
         */
        public final class CamelJmsToFileExample {

            private CamelJmsToFileExample() {        
            }

            public static void main(String args[]) throws Exception {
                /*JndiContext jndiContext = new JndiContext();
                jndiContext.bind("myBean", new MyBean());
                jndiContext.bind("mongoClient", new CommonDbConnection());*/
                CamelContext context = new DefaultCamelContext();
                ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
                context.addComponent("test-jms",  JmsComponent.jmsComponentAutoAcknowledge(connectionFactory));
                CustomMessage customMessage = new CustomMessage();
                customMessage.setId("123");
                context.addRoutes(new RouteBuilder() {
                    public void configure() {
                        System.out.println("Inside the configure");
                        from("test-jms:queue:test.queue").to("messageProcessor");
                    }
                });
                ProducerTemplate template = context.createProducerTemplate();
                context.start();
                template.sendBody("test-jms:queue:test.queue", customMessage);

            }
        }


    pom.xml

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>EmailService</groupId>
      <artifactId>com.emailService</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <name>emailService</name>
      <dependencies>
            <dependency>
                <groupId>org.apache.camel</groupId>
                <artifactId>camel-core</artifactId>
                <version>2.15.1</version>
            </dependency>
            <dependency>
                <groupId>org.apache.camel</groupId>
                <artifactId>camel-stream</artifactId>
                <version>2.15.1</version>
            </dependency>
            <dependency>
                <groupId>org.apache.camel</groupId>
                <artifactId>camel-jms</artifactId>
                <version>2.15.1</version>
            </dependency>
            <dependency>
                <groupId>org.apache.activemq</groupId>
                <artifactId>activemq-camel</artifactId>
                <version>5.6.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.activemq</groupId>
                <artifactId>activemq-pool</artifactId>
                <version>5.11.1</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/org.mongodb/mongo-java-driver -->
            <dependency>
                <groupId>org.mongodb</groupId>
                <artifactId>mongo-java-driver</artifactId>
                <version>3.4.2</version>
            </dependency>
            <dependency>
                <groupId>org.apache.camel</groupId>
                <artifactId>camel-mongodb</artifactId>
                <version>2.13.1</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.integration</groupId>
                <artifactId>spring-integration-mongodb</artifactId>
                <version>4.3.8.RELEASE</version>
            </dependency> 
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-autoconfigure</artifactId>
                <version>1.5.2.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.apache.camel</groupId>
                <artifactId>camel-spring-boot</artifactId>
                <version>2.15.1</version>
            </dependency> 
      </dependencies>
    </project>




exception am facing :




 SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
    SLF4J: Defaulting to no-operation (NOP) logger implementation
    SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
    Inside the configure
    Exception in thread "main" org.apache.camel.FailedToCreateRouteException: Failed to create route route1 at: >>> To[messageProcessor] <<< in route: Route(route1)[[From[test-jms:queue:test.queue]] -> [To[messa... because of No endpoint could be found for: messageProcessor, please check your classpath contains the needed Camel component jar.
        at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:1028)
        at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:185)
        at org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:841)
        at org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:2895)
        at org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:2618)
        at org.apache.camel.impl.DefaultCamelContext.access$000(DefaultCamelContext.java:167)
        at org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:2467)
        at org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:2463)
        at org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:2486)
        at org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:2463)
        at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
        at org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:2432)
        at CamelJmsToFileExample.main(CamelJmsToFileExample.java:37)
    Caused by: org.apache.camel.NoSuchEndpointException: No endpoint could be found for: messageProcessor, please check your classpath contains the needed Camel component jar.
        at org.apache.camel.util.CamelContextHelper.getMandatoryEndpoint(CamelContextHelper.java:81)
        at org.apache.camel.model.RouteDefinition.resolveEndpoint(RouteDefinition.java:200)
        at org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteContext.java:107)
        at org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteContext.java:113)
        at org.apache.camel.model.SendDefinition.resolveEndpoint(SendDefinition.java:62)
        at org.apache.camel.model.SendDefinition.createProcessor(SendDefinition.java:56)
        at org.apache.camel.model.ProcessorDefinition.makeProcessor(ProcessorDefinition.java:505)
        at org.apache.camel.model.ProcessorDefinition.addRoutes(ProcessorDefinition.java:217)
        at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:1025)
        ... 12 more
这使得Camel假设它是一个具有该名称的组件,而不是,所以将其更改为

 from("test-jms:queue:test.queue").to("messageProcessor");
并内联一个处理器,您可以在其中处理消息,或者如果您只想进行快速测试,则使用日志端点

from("test-jms:queue:test.queue").process(new Processor() ... );
还要注意,
CamelContext
上的
start
方法没有阻塞。请参阅此常见问题解答:

 from("test-jms:queue:test.queue").to("log:hello");