【发布时间】:2014-04-04 01:50:31
【问题描述】:
我已经为服务创建了一个代理。
在代理(请求类型为TypeA)和实际服务(请求类型为TypeB)之间有一个处理器。
process(Exchange exchange) 方法中的 Exchange 主体是 TypeA。
我可以使用以下代码行访问数据
TypeA typeA = exchange.getIn().getBody(TypeA.class);
现在,我想将此信息更改为TypeB。
我正在使用以下行添加正文。
exchange.getIn().setBody(typeA);
我收到了java.lang.IllegalArgumentException: argument type mismatch
现在,我想使用来自Processor 的Exchange 调用真正的服务。
我尝试在处理器中得到以下异常
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
真正的网络服务没有被调用。
如何解决这个问题。
我在代理中使用 POJO 模式。
【问题讨论】:
-
您需要提供更多详细信息,然后才能有人帮助您。没有太多细节,不清楚问题是什么等。例如花更多时间写下更好的问题,以便更好的人可以帮助你。
-
请检查修改后的代码。
标签: apache-camel fuseesb jbossfuse