0

私は非常に珍しい問題で立ち往生しています。Spring WebサービスコンポーネントのSpring統合フロー(バージョン2.1.0)でheader-value-routerを使用しています。

<int:header-value-router id="routerId" input-channel="routeChannel"
    header-name="msgtype" resolution-required="true">
<int:mapping value="north" channel="channelA"/>
<int:mapping value="south" channel="channelB"/>
 </int:header-value-router>    

これは、JUnitを介してフローを呼び出すと完全に機能しますが、このWebサービスがコンポーネントであるtcserverにデプロイされ、WebサービスがSIフローを呼び出すと、header-value-routerで失敗し、次のエラーが発生します。

[16.01.2013 23:14:25] WARN:GatewayProxyFactoryBean$MethodInvocationGateway.doSendAndReceive() - failure occurred in gateway sendAndReceive

**org.springframework.integration.MessagingException: failed to resolve channel name 'north'**
at org.springframework.integration.router.AbstractMappingMessageRouter.resolveChannelForName(AbstractMappingMessageRouter.java:168)
at org.springframework.integration.router.AbstractMappingMessageRouter.addChannelFromString(AbstractMappingMessageRouter.java:197)
at org.springframework.integration.router.AbstractMappingMessageRouter.addToCollection(AbstractMappingMessageRouter.java:218)     

Spring Sourceをデバッグしたところ、header-value-routerが呼び出されると、マッピングがロードされますが、ソースコードAbstractMappingMessageRouter.javaで正しく比較されないことがわかりました。

   if (this.channelMappings.containsKey(channelKey)) {
                    channelName = this.channelMappings.get(channelKey);
    }

'containsKey'でのこの失敗は、ヘッダー値にchannelNameがあると想定するコードにつながります。

何が問題なのかわからない。実行時にjarが欠落している可能性がありますか?xpath-routerとrouterも試しましたが、結果は同じです

4

0 に答える 0