Apache camel 简单丰富示例

Apache camel simple enrich example

我问这个问题的原因是该功能实际上是新生的(从 2.16 开始可用),我找不到任何关于它的文档。

这就是我想要做的:

from("file://Goods")
                    .aggregate(constant(true), new mergeFiles())
                    .completionFromBatchConsumer()
                    .split(body().tokenize("\r\n"), new mapStrings())
                    .enrich()
                    .simple("http://remoteserver.com/sample.xml")
                    .aggregate(constant(true), new calcxml())

该代码基本上意味着根据 xml 介绍丰富映射资源(即计算每种商品的税),并返回此错误:

org.apache.camel.TypeConversionException: Error during type conversion from type: java.lang.String to the required type: org.apache.commons.httpclient.methods.RequestEntity with value Good1 450 due java.lang.UnsupportedClassVersionError: spark/Request : Unsupported major.minor version 52.0

而且我不知道这与 spark(另一个与大数据等相关的 apache 项目)有什么关系。也许我在这里做错了什么,用例是只为 spark 使用这种丰富?

前面的代码部分在使用 log4j 的调试模式下测试时运行良好

"Unsupported major.minor version 52.0" 意味着您 运行 您的代码 JDK 低于 1.8,并且一些库是为 1.8 编译的。您需要检查您使用的所有库并尝试找到一个不支持 JDK 1.7 的库。从你的例外看来 "spark/Request" 是

的原因

这里是 JDK 个版本及其代码的列表:

  • Java SE 8 = 52(0x34 十六进制),
  • Java SE 7 = 51(0x33 十六进制),
  • Java SE 6.0 = 50(0x32 十六进制),
  • Java SE 5.0 = 49(0x31 十六进制),
  • JDK 1.4 = 48(0x30 十六进制),
  • JDK 1.3 = 47(0x2F 十六进制),
  • JDK 1.2 = 46(0x2E 十六进制),
  • JDK 1.1 = 45(0x2D 十六进制)。

https://en.wikipedia.org/wiki/Java_class_file