método del proceso Apache Camel no está recibiendo llamadas

son los siguientes:

Tengo un archivo CSV con alrededor de 20 registros. Mi objetivo para leer el archivo csv convertido registro por registro a XML y enviar el XML como un mensaje a la cola de ActiveMQ. Estoy haciendo esto usando Apache Camel.

Primer paso: leer el archivo csv y convertirlo en XML usando Apache Camel.

A continuación se muestra el código:

    CamelContext _ctx = new DefaultCamelContext(); 
            _ctx.addRoutes(new RouteBuilder() {

                public void configure() throws Exception {
                    System.out.println("Inside configure method.");
                    from("file:src/main/resources/data-sample.csv")
                    .process(new MyTransform())
                    .to("file:src/main/resources/fileName=emp.xml");
                }

            });

            _ctx.start();
             Thread.sleep(4000);
            _ctx.stop();

class MyTransform implements Processor {

    public void process(Exchange exchange) throws Exception {

        System.out.println("In Process method");

        String myString = exchange.getIn().getBody(String.class);
        String[] lineSeparator = myString.split(System.getProperty("line.separator"));
        StringBuffer sb = new StringBuffer();

        for (String lineData : lineSeparator){

            String[] commaSeparator = lineData.split(",");
            sb.append("<equityFeeds>");
            sb.append("<externalTransactionId>" + commaSeparator[0].toString() + "</externalTransactionId>");
            sb.append("<clientId>" + commaSeparator[1].toString() + "</clientId>");
            sb.append("<securityId>" + commaSeparator[2].toString() + "</securityId>");
            sb.append("<transactionType>" + commaSeparator[3].toString() + "</transactionType>");
            sb.append("<transactionDate>" + commaSeparator[4].toString() + "</transactionDate>");
            sb.append("<sourceSystem>" + commaSeparator[5].toString() + "</sourceSystem>");
            sb.append("<priorityFlag>" + commaSeparator[6].toString() + "</priorityFlag>");
            sb.append("</equityFeeds>");

        }

        System.out.println("MyProcessor complete");
        exchange.getIn().setBody(sb.toString());

    }   

}   

En la salida que sólo imprime

método configure el interior.

El método proceso no está siendo llamado. ¿Por qué? ¿Qué está mal? Por favor guíame. Es tan molesto. Por favor ayuda.

Claus Ibsen:

Sólo decir from("file:src/main/resources/")que su directorio de inicio. Si desea arranque solamente un archivo específico, pues, dicenfrom("file:src/main/resources?fileName=data-sample.csv")

También la aplicación sólo se ejecuta durante 4 segundos, ya que sólo el sueño por eso.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=348467&siteId=1
Recomendado
Clasificación