2013-02-15 176 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”无法处理接收到的输入数据类型。按照预期使用适当的数据类型。

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