サービスのプロキシを作成しました。
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
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 モードを使用しています。