java - 将未编码的对象传递给 Camel 处理器

标签 java spring-boot apache-camel

我正在为一个应用程序使用 Apache Camel 和 Spring Boot。我需要从目录中读取数据,然后解码读取的 xml,然后处理解码的对象以在其中设置更多数据,然后再次对其进行编码并将其发送到不同的文件夹。我正在使用以下路线。请告诉我如何将解码后的 POJO 发送到处理器。目前默认情况下是进入处理器的交换。

@SpringBootApplication
public class CamelApplication extends FatJarRouter {

    public static void main(String ... args) {
        SpringApplication.run(CamelApplication.class, args);
    }

    @Override
    public void configure() throws Exception {
        from("file:input?noop=true")
        .log("Read from the input file")
        .unmarshal(new XMLtoPOJO())
        .log("Unmarshalled the xml")
        .process(new MyProcessortoSetMoreDatatoPOJO())
        .log("Enriched with more data in processor")
        .to("file:destination")
        .log("Written to output file");
    }
}

最佳答案

如果您使用的是处理器,您可以按如下方式从交易所获取pojo:

MyPojo pojo = exchange.getIn().getBody(MyPojo.class);

您可以编写一个带有要使用的 POJO bean 方法签名的普通 POJO bean,而不是处理器

 public void doSomething(MyPojo pojo)

然后从 Camel 调用该 bean。查看更多详细信息:http://camel.apache.org/bean

关于java - 将未编码的对象传递给 Camel 处理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38734373/

相关文章:

java - 我将如何重载接口(interface)中的方法?

java - 来自管道分隔字符串的格式字符串

mysql - Spring Boot从没有实体的表中读取,编辑并保存在另一个表中

java - Spring 安全 OAuth2 InvalidGrantException

apache-camel - 使用 Apache Camel AWS-KINESIS 端点,如何检查 Kinesis 流中的消息?

java - (libgdx) 为什么我的 Sprite 渲染得这么大?

java - ClassCastException:org.postgresql.util.PGobject 无法转换为 org.postgis.Point

maven - 通过将其添加为测试范围来排除 Maven 依赖项?

java - 从路线外停止 Camel 路线

java - 使用 Apache Camel 如何解码通过 CXF 端点传入的反序列化对象?