2014-11-16 89 views
1

我在將我的應用程序表單spring-integration 4.0.4遷移到最新的4.1.0版本時出現問題。Spring Integration 4.1.0遷移問題

一旦更換罐子,我的集成上下文會爲每個<recipient-list-router/>標籤引發異常。

拋出的異常是一個java.lang.ClassCastException的消息是:

Caused by: java.lang.ClassCastException: com.sun.proxy.$Proxy62 cannot be cast to org.springframework.integration.context.IntegrationObjectSupport 
    at org.springframework.config.AbstractSimpleMessageHandlerFactoryBean.createHandlerInternal(AbstractSimpleMessageHandlerFactoryBean.java:130) 
    at org.springframework.integration.config.AbstractSimpleMessageHandlerFactoryBean.getObject(AbstractSimpleMessageHandlerFactoryBean.java:102) 
    at org.springframework.integration.config.AbstractSimpleMessageHandlerFactoryBean.getObject(AbstractSimpleMessageHandlerFactoryBean.java:44) 
    at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanReagistrySupport.java:168) 
    ... 20 more 

我使用Spring的集成4.1.0.RELEASE,彈簧核心4.1.2.RELEASE,並在jdk1.8.0_05運行。 我的集成bean上下文包含兩個<recipient-list-router/>標籤,刪除後不要拋出此錯誤。

回答

0

AbstractSimpleMessageHandlerFactoryBean代碼說:

else if(!(this.handler instanceof AbstractReplyProducingMessageHandler)) { 
    if (logger.isDebugEnabled()) { 
      logger.debug("adviceChain can only be set to AbstractReplyProducingMessageHandler or its subclass, " 
        + ((IntegrationObjectSupport) this.handler).getComponentName() + " doesn't support it."); 
       } 
} 

那麼,讓我們爲org.springframework.integrationdebug開關!

從另一方面來說,我同意這是一個錯誤,因爲如果我們的messageHandlerProxy我們不能簡單地將它轉換爲IntegrationObjectSupport

因此,隨時可以提出有關此事的JIRA票。

從另一面也不清楚爲什麼去除<recipient-list-router/>驅逐的問題...

因爲<recipient-list-router/>不支持<request-handler-advice-chain>

我同意,我們在4.1 RecipientListRouterManagement已經推出,如果你使用JMX特殊的MBean將被註冊爲RecipientListRouter,最後一個成爲Proxy,但它不是clrear該代理如何與request-handler-advice-chain日誌消息...

如果您可以從AbstractSimpleMessageHandlerFactoryBean調試該行並向我們顯示該Proxy的實際對象,那將會很好。

並且顯示更多StackTrace。也許我們可以看到更多的背景來找出原因的根源。

謝謝!

+0

關於此問題的JIRA問題:https://jira.spring.io/browse/INT-3565 –

+0

感謝您的答覆,definitley似乎工作。 對不起,不發佈更多堆棧跟蹤,但有問題的計算機沒有連接到任何東西(公司政策),所以這有點困難... –