- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试将 Multi-Casting 企业集成模式 (EIP) 与 Apache Camel 结合使用,但遇到了很多运行时异常。我认为主要错误如下。如果有人可以帮我解决这个问题,我想我可能可以运行这个小程序。请参阅下面的错误和程序。
错误:引起:org.apache.camel.InvalidPayloadException:没有可用的类型:java.io.InputStream的主体,但具有类型:java.lang.Integer的值:100:消息:100。引起by:没有类型转换器可用于从类型:java.lang.Integer 转换为所需类型:值为 100 的 java.io.InputStream。Exchange[Message: 100]。原因:[org.apache.camel.NoTypeConversionAvailableException - 没有类型转换器可用于从类型:java.lang.Integer 转换为所需类型:值为 100 的 java.io.InputStream]
程序:
具有启动程序的 main 方法的 Java 类:
import org.apache.camel.CamelContext;
import org.apache.camel.impl.DefaultCamelContext;
import org.apache.camel.ProducerTemplate;
public class MainMulti {
public static void main(String[] args) {
CamelContext c = new DefaultCamelContext();
try {
c.addRoutes(new MultiRoute());
c.start();
ProducerTemplate pro = c.createProducerTemplate();
pro.sendBody("direct:start", 100);
pro.sendBody("direct:start", 500);
Thread.sleep(5000);
c.stop();
} catch(Exception ex) {
System.out.println(ex);
ex.printStackTrace();
}
}
}
Java DSL 路线:
import org.apache.camel.builder.RouteBuilder;
public class MultiRoute extends RouteBuilder {
@Override
public void configure() throws Exception {
from("direct:start")
.multicast(new HighestAggregator())
.parallelProcessing()
.to("file:target/a", "file:target/b", "file:target/c")
.end()
.to("file:target/result");
}
}
聚合 Java bean:
import org.apache.camel.Exchange;
import org.apache.camel.processor.aggregate.AggregationStrategy;
public class HighestAggregator implements AggregationStrategy {
public Exchange aggregate(Exchange oldExchange, Exchange newExchange) {
if (oldExchange == null) {
return newExchange;
}
Integer currentQuote = oldExchange.getIn().getBody(Integer.class);
Integer newQuote = newExchange.getIn().getBody(Integer.class);
return currentQuote.compareTo(newQuote) > 0 ? oldExchange : newExchange;
}
}
最佳答案
您正在多播中写入文件,但传入的消息正文不属于受支持的类型。您将输入作为整数发送。并且不支持直接将单个整数写入文件。
因此,更改示例代码以将数据作为字符串发送,例如
pro.sendBody("direct:start", "100");
pro.sendBody("direct:start", "500");
关于java - Apache Camel MultiCasting - InvalidPayloadException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36970413/
我尝试将 Multi-Casting 企业集成模式 (EIP) 与 Apache Camel 结合使用,但遇到了很多运行时异常。我认为主要错误如下。如果有人可以帮我解决这个问题,我想我可能可以运行这个
我正在尝试进行api调用并获取有效载荷,并在将bean对象解组后丰富内容。我可以看到已经解组了bindy对象,但是在进行api调用后,它抛出了以下异常。 Message History -------
我正在通过 Java 将 JAXB 对象发送到 Rabbit MQ。 JAXBContext jaxbContext = JAXBContext.newInstance(MyDTO.class);
我是一名优秀的程序员,十分优秀!