Java 8 在ApacheCamel中拆分Zip文件?

Java 8 在ApacheCamel中拆分Zip文件?,java-8,apache-camel,osgi,osgi-bundle,enterprise-integration,Java 8,Apache Camel,Osgi,Osgi Bundle,Enterprise Integration,我正在尝试获取一个输入zip流,并从其中获取文件。目前,我有这个bean调用试图将流发送到一个伪方法,以便我可以在调试器中分析主体。结果是一个空字符串 public void configure() throws Exception { from("direct-vm://splitter-route") .split(new ZipSplitter()) .streaming() .convertBodyTo(String.class

我正在尝试获取一个输入zip流,并从其中获取文件。目前,我有这个bean调用试图将流发送到一个伪方法,以便我可以在调试器中分析主体。结果是一个空字符串

  public void configure() throws Exception {
    from("direct-vm://splitter-route")
        .split(new ZipSplitter())
        .streaming()
        .convertBodyTo(String.class)
        .choice()
        .when(body().isNotNull())
        .bean(this, "testCall")
        .to("file:/tmp/myinputzip")
        .end()
        .end();

我如何让它将每个单独的文件传递给我的方法

你的代码对我来说非常好。您的zip文件可能包含无法转换为
字符串的文件。要查看正在发生的事情以及
body
中的类型,请注释掉行
.convertBodyTo(String.class)
,然后用
exchange.getIn()检查
testCall中的body
方法。getBody(/*注意,没有body*/)
我的zip包含一个文本文件,如我所说的,该文件名为“hello world”,它正在我的机器上工作。我已复制了您的代码,并将
从(“文件:\\temp”)添加到(“直接vm:\\splitter路由”)和文件创建时没有出现问题。所以,您调试了应用程序的错误部分,问题出在路由中,即将数据发送到
direct vm
,或者您发现了错误。没有你的版本就说不出来。使用Camel 2.21.0进行测试。