简体   繁体   English

将文件路由到Queue Apache Camel

[英]Route file to Queue Apache Camel

I have a requirement to read a file from a folder and place it on a queue. 我需要从文件夹中读取文件并将其放在队列中。

Here is the code I have: 这是我的代码:

import java.io.File;

import org.apache.camel.CamelContext;
import org.apache.camel.Exchange;
import org.apache.camel.LoggingLevel;
import org.apache.camel.Processor;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.impl.DefaultCamelContext;

public class FileMove{
    public static void main(final String[] arguments) {
        final CamelContext camelContext = new DefaultCamelContext();
        try {
            camelContext.addRoutes(new RouteBuilder() {
                @Override
                public void configure() throws Exception {

                    from("file://E:/TestingWatch1/input?preMove=staging&move=.completed&scheduler=quartz2&scheduler.cron=00+*/1+*+1/1+*+?+*")
                            .routeId("testRoute").process(new Processor() {
                                @Override
                                public void process(Exchange msg) throws Exception {
                                    File file = msg.getIn().getBody(File.class);
                                    String file1 = msg.getIn().getBody(String.class);
                                    System.out.println("" + file + file1);

                                }

                            }).
                            to("file://E:/TestingWatch1/output");
                }
            });
            camelContext.start();
            // Thread.sleep(10*60*1000);
            // camelContext.stop();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
}

I am able to read the file and file contents, but I need to place it on the queue. 我能够读取文件和文件内容,但需要将其放在队列中。

How do I move the file or file contents to queue using the Java DSL? 如何使用Java DSL将文件或文件内容移动到队列中?

Thanks, I found the solution: Here is the code 谢谢,我找到了解决方案:这是代码

import java.io.File;

import javax.jms.ConnectionFactory;

import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.camel.CamelContext;
import org.apache.camel.Exchange;
import org.apache.camel.LoggingLevel;
import org.apache.camel.Processor;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.jms.JmsComponent;
import org.apache.camel.impl.DefaultCamelContext;

public class CopyTest {
    public static void main(final String[] arguments) {
        final CamelContext camelContext = new DefaultCamelContext();
        ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("admin", "admin",
                ActiveMQConnection.DEFAULT_BROKER_URL);
        camelContext.addComponent("test-jms", JmsComponent.jmsComponentAutoAcknowledge(connectionFactory));
        try {
            camelContext.addRoutes(new RouteBuilder() {
                @Override
                public void configure() throws Exception {

                    from("file://E:/TestingWatch1/input?preMove=staging&move=.completed&scheduler=quartz2&scheduler.cron=00+*/1+*+1/1+*+?+*")
                            .routeId("testRoute").process(new Processor() {
                                @Override
                                public void process(Exchange msg) throws Exception {
                                    File file = msg.getIn().getBody(File.class);
                                    String file1 = msg.getIn().getBody(String.class);
                                    System.out.println("" + file + file1);

                                }

                            }).to("test-jms:queue:testMQDestination").
                            to("file://E:/TestingWatch1/output");
                }
            });
            camelContext.start();
            // Thread.sleep(10*60*1000);
            // camelContext.stop();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM