2013-02-15 107 views
0

我一直在使用入站通道適配器代碼工作完美,但它拋出這個特殊的例外,這我不能夠解決Spring集成

11:43:27.664 [main] DEBUG o.s.i.u.MessagingMethodInvokerHelper - Method [public void com.ms.aps.fsmessaging.alert.QueryServiceActivator.getMessageProcessStatus(byte[],com.ms.aps.fsmessaging.alert.types.MessageType,java.lang.String) throws java.lang.Exception] is not eligible for Message handling. 
java.lang.IllegalArgumentException: Found more than one parameter type candidate: [byte[]] and [com.ms.aps.fsmessaging.alert.types.MessageType] 
    at org.springframework.util.Assert.isNull(Assert.java:89) ~[org.springframework.core.jar:3.0.5.RELEASE] 
    at org.springframework.integration.util.MessagingMethodInvokerHelper$HandlerMethod.setExclusiveTargetParameterType(MessagingMethodInvokerHelper.java:623) ~[spring-integration-core-2.0.5.jar:na] 
    at org.springframework.integration.util.MessagingMethodInvokerHelper$HandlerMethod.generateExpression(MessagingMethodInvokerHelper.java:557) ~[spring-integration-core-2.0.5.jar:na] 
    at org.springframework.integration.util.MessagingMethodInvokerHelper$HandlerMethod.<init>(MessagingMethodInvokerHelper.java:437) ~[spring-integration-core-2.0.5.jar:na] 
    at org.springframework.integration.util.MessagingMethodInvokerHelper$1.doWith(MessagingMethodInvokerHelper.java:300) ~[spring-integration-core-2.0.5.jar:na] 
    at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:452) [org.springframework.core.jar:3.0.5.RELEASE] 
    at org.springframework.integration.util.MessagingMethodInvokerHelper.findHandlerMethodsForTarget(MessagingMethodInvokerHelper.java:274) [spring-integration-core-2.0.5.jar:na] 
    at org.springframework.integration.util.MessagingMethodInvokerHelper.<init>(MessagingMethodInvokerHelper.java:167) [spring-integration-core-2.0.5.jar:na] 
    at org.springframework.integration.util.MessagingMethodInvokerHelper.<init>(MessagingMethodInvokerHelper.java:119) [spring-integration-core-2.0.5.jar:na] 
    at org.springframework.integration.util.MessagingMethodInvokerHelper.<init>(MessagingMethodInvokerHelper.java:114) [spring-integration-core-2.0.5.jar:na] 
    at org.springframework.integration.handler.MethodInvokingMessageProcessor.<init>(MethodInvokingMessageProcessor.java:56) [spring-integration-core-2.0.5.jar:na] 
    at org.springframework.integration.handler.ServiceActivatingHandler.<init>(ServiceActivatingHandler.java:34) [spring-integration-core-2.0.5.jar:na] 
    at org.springframework.integration.config.ServiceActivatorFactoryBean.createMethodInvokingHandler(ServiceActivatorFactoryBean.java:48) [spring-integration-core-2.0.5.jar:na] 
    at org.springframework.integration.config.AbstractStandardMessageHandlerFactoryBean.createHandler(AbstractStandardMessageHandlerFactoryBean.java:72) [spring-integration-core-2.0.5.jar:na] 
    at org.springframework.integration.config.AbstractSimpleMessageHandlerFactoryBean.createHandlerInternal(AbstractSimpleMessageHandlerFactoryBean.java:89) [spring-integration-core-2.0.5.jar:na] 
    at org.springframework.integration.config.AbstractSimpleMessageHandlerFactoryBean.getObject(AbstractSimpleMessageHandlerFactoryBean.java:68) [spring-integration-core-2.0.5.jar:na] 
    at org.springframework.integration.config.AbstractSimpleMessageHandlerFactoryBean.getObject(AbstractSimpleMessageHandlerFactoryBean.java:31) [spring-integration-core-2.0.5.jar:na] 
    at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:142) [org.springframework.beans.jar:3.0.5.RELEASE] 
    at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:102) [org.springframework.beans.jar:3.0.5.RELEASE] 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1429) [org.springframework.beans.jar:3.0.5.RELEASE] 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:245) [org.springframework.beans.jar:3.0.5.RELEASE] 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190) [org.springframework.beans.jar:3.0.5.RELEASE] 
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322) [org.springframework.beans.jar:3.0.5.RELEASE] 
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106) [org.springframework.beans.jar:3.0.5.RELEASE] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1325) [org.springframework.beans.jar:3.0.5.RELEASE] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1086) [org.springframework.beans.jar:3.0.5.RELEASE] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517) [org.springframework.beans.jar:3.0.5.RELEASE] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) [org.springframework.beans.jar:3.0.5.RELEASE] 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291) [org.springframework.beans.jar:3.0.5.RELEASE] 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) [org.springframework.beans.jar:3.0.5.RELEASE] 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288) [org.springframework.beans.jar:3.0.5.RELEASE] 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190) [org.springframework.beans.jar:3.0.5.RELEASE] 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:563) [org.springframework.beans.jar:3.0.5.RELEASE] 
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895) [org.springframework.context.jar:3.0.5.RELEASE] 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425) [org.springframework.context.jar:3.0.5.RELEASE] 
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139) [org.springframework.context.jar:3.0.5.RELEASE] 
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83) [org.springframework.context.jar:3.0.5.RELEASE] 
    at com.ms.aps.fsmessaging.alert.StartPolling.main(StartPolling.java:20) [.ide-bin/:na] 

我使用了一個一行映射配置的輸出來實現一個輪詢存儲結果集的bean的對象形式。

回答

3

這只是一個調試消息,而我們遍歷服務來找到匹配的方法。這是良性的,沒有什麼可擔心的。

+0

我只是在這個問題上遇到了麻煩,而我的Spring集成項目造成了mqtt連接問題。 stacktrace有點嚇人:)(特別是在我的情況下,因爲我的項目在一段時間後簡單地停止處理消息)。我認爲這與棧跟蹤有關,但顯然不是。根據文檔,Assert通常用於「在運行時及早明確地識別程序員錯誤」。看起來這只是一個內部調試消息沒有?這裏的堆棧跟蹤真的很需要嗎? – ddewaele 2014-07-16 12:57:07

+1

我同意這有點可怕,我已經打開了一個[JIRA問題](https://jira.spring.io/browse/INT-3474),我們將嘗試解決它。關於MQTT,我們注意到Paho客戶端在連接關閉期間無限期地被阻塞。隨後,我們切換(在主服務器上)使用異步客戶端,以便我們始終能夠執行任何操作。不知道這是否與你的問題有關,但我想我會提到它。 – 2014-07-16 13:22:54

+0

Thx很多!現在我已經把所有的東西都放在調試模式中,看看是否有一些亮光。問題發生時將嘗試進行一些線程轉儲。 (我想我應該看到線程轉儲中的阻塞問題?) – ddewaele 2014-07-16 13:35:22

0

您的服務激活處理程序方法「getMessageProcessStatus」無法處理接收到的輸入數據類型。按照預期使用適當的數據類型。

它找不到匹配的方法,它是您在服務激活器中提供的方法名稱。