Spring Bean で受信した交換オブジェクトから SOAP メッセージを取得する必要があります。
サービス エンドポイントから Java Bean にルーティングするキャメル ルートがあります。春に宣言された Java Bean と Camel ルートは次のようになります。
<bean id="processor" class="com.groupgti.esb.camel.wrapper.gradireland.userregistration.UserRegistrationProcessor">
<camel:route id="route">
    <camel:from uri="cxf:bean:myListenerEndpoint?dataFormat=PAYLOAD&synchronous=true" />
    <camel:bean ref="processor" />
    <camel:to uri="cxf:bean:myTargetEndpoint"/>
</camel:route>
私の Java Bean では、交換オブジェクトを受け取ります。
@Override
public SOAPMessage processMessage(Exchange exchange) {
    Object object = exchange.getIn().getHeaders().get("CamelCxfMessage");
    LOGGER.debug("Object: " + object);
    SOAPMessage message = null;
    if (object instanceof SOAPMessage) {
        message = (SOAPMessage) object;
        LOGGER.debug("Got message: " + message);
    }
    LOGGER.debug("Sending message...");
    return message;
}
問題は、交換から SOAP メッセージを取得できないことです。Web サイトをキャメルしました。SOAP メッセージを取得するには、これを使用する必要があることがわかりました。
SOAPMessage soapMessage = (SOAPMessage) exchange.getIn().getBody(List.class).get(0);
しかし、彼はNullPointerException引き換えに私にどこか深いところを与えてくれます。
オブジェクトツリーをデバッグして表示しようとしました。次のようなメッセージを取得できることがわかりました。
SOAPMessage soapMessage = (SOAPMessage) exchange.getIn().getHeaders().get("CamelCxfMessage");
しかし、これは私にこの例外を与えます:
org.apache.camel.ExpectedBodyTypeException: Could not extract IN message body as type: interface javax.xml.transform.Source body is: null
私はここで立ち往生しています。多分誰かがどこに問題があるのか 知っていますか?