我已经创建了一个服务代理。
代理(请求类型为TypeA
)和实际服务(请求类型TypeB
。)之间有一个处理器。
进入< code > process(Exchange Exchange)方法的交换体属于< code>TypeA。
我能够使用下面的代码行访问数据
TypeA typeA = exchange.getIn().getBody(TypeA.class);
现在,我想将此信息更改为TypeB
。
我使用下面的代码添加主体。
exchange.getIn().setBody(typeA);
我得到了java.lang.IllegalArgumentExc的:参数类型不匹配
现在,我想使用Exchange
调用真正的服务,它来自Processor
。
我尝试进入处理器,但出现以下异常
java.lang.IllegalArgumentException: argument type mismatch
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.cxf.databinding.AbstractWrapperHelper.createWrapperObject(AbstractWrapperHelpe
真正的Web服务没有被调用。
如何解决这个问题。
我在代理中使用POJO模式。
这没有任何问题:
private static class ResetBodyRouteBuilder extends RouteBuilder {
@Override
public void configure() {
from("direct:start")
.process(new Processor() {
@Override
public void process(final Exchange exchange) throws Exception {
final ClassA a = exchange.getIn().getBody(ClassA.class);
LOG.info("body = " + a);
exchange.getIn().setBody(new ClassB()); // reset the body
}
})
.log("body = ${body}");
}
}
public class ClassA {
@Override
public String toString() {
return "I'm A";
}
};
public class ClassB {
@Override
public String toString() {
return "I'm B";
}
};
这将打印:
[ main] ResetBody INFO body = I'm A
[ main] route1 INFO body = I'm B
脚本: CSV文件被发送到我的endpoint,Pojo将java数据和消息转换为我的一条路由,比如(“direct:consume”)路由,然后处理器处理该文件,处理消息并创建新的输出 问题: 文件只包含代码中断的一行 文件包含多行代码工作 尝试: 试图找到一种方法来确定交易记录的数量。getIn()。getBody() 阅读stackoverflow 阅读有关exchange的文档 在不知道记
我正在设置路由1中骆驼交换的属性。我正在尝试在拆分器内的第二条路由中更新该属性。但是在拆分器的第二次迭代中,我得到的是我在路由1中设置的原始值,而不是新的更新值。下面是我正在尝试的示例。。 豆子里面: 为什么不更新属性?甚至我也试着在标题中设置。同样的结果。非常感谢。
这里是Java 8和Camel 2.19.x。我有以下骆驼路线: 和处理器:
我有一个简单的路线,看起来像这样: CXF 配置也非常简单: 此简单路由失败,出现以下异常 这是消息历史记录,表明它在
我的主要问题是:在JPA实体类内的方法上,除了@Consumed注释之外,还有其他选择吗? 我问这个问题是因为我真的想把我的JPA模型(例如我的所有实体)具体化,以便能够在使用相同数据库的其他项目之间共享。此外,我不想在我的子项目中出现一些骆驼依赖,这意味着要删除@Consumed注释。我基本上有这样一条路线: 我尝试了不同的解决方案: 在我的camel项目中,使用@Consumed方法扩展子模块
我有一条骆驼路线,如下所示。 bean方法顾名思义,分别将body设置为“Hello”和“World”。 我还设置了onException子句,如下所示: 假设,我将一条消息放在队列“开始”上,正文为“测试消息”。在第一个杜米豆中成功处理后,我在第二个杜米豆中抛出一个运行时异常。我希望看到实际的消息或(原始消息内容完好无损,即“测试消息”)被发送到我的死信队列。 但是,死信队列上的消息内容是“He