2014-03-04 76 views
0

定義的多個頻道,我去春來整合和我使用下面的代碼是一個新手,異常春季整合 - 在聲明一個通道豆

package services.api; 

public interface GreetingService { 
    public void greetUsers(String userName); 

} 


package services.impl; 

import services.api.GreetingService; 

public class GreetServiceImpl implements GreetingService { 

    @Override 
    public void greetUsers(String userName) { 
     if (userName != null && userName.trim().length() > 0) { 
      System.out.println("Hello " + userName); 
     } 

    } 

} 


package main; 

import org.springframework.context.ApplicationContext; 
import org.springframework.context.support.ClassPathXmlApplicationContext; 
import org.springframework.integration.Message; 
import org.springframework.integration.MessageChannel; 
import org.springframework.integration.support.MessageBuilder; 

public class Main { 

    public static void main(String[] args) 
    { 
     ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml"); 



     MessageChannel messageChannel = applicationContext.getBean(MessageChannel.class); 
     Message<String> message = MessageBuilder.withPayload("World").build(); 
     messageChannel.send(message); 
    } 

} 


<?xml version="1.0" encoding="UTF-8"?> 

<beans:beans xmlns:beans="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://springframework.org/schema/integration" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
    http://springframework.org/schema/integration http://springframework.org/schema/integration/spring-integration.xsd"> 


    <channel id="pushChannel" /> 

    <service-activator input-channel="pushChannel" ref="service" 
     method="greetUsers" /> 


    <beans:bean id="service" class="services.impl.GreetServiceImpl" /> 



</beans:beans> 

我收到以下錯誤沉綿我「已經宣佈只有一個消息渠道

Mar 04, 2014 4:46:23 PM org.springframework.context.support.ClassPathXmlApplicationContext prepareRefresh 
INFO: Refreshing org[email protected]34d0cdd0: startup date [Tue Mar 04 16:46:23 IST 2014]; root of context hierarchy 
Mar 04, 2014 4:46:23 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions 
INFO: Loading XML bean definitions from class path resource [applicationContext.xml] 
Mar 04, 2014 4:46:23 PM org.springframework.beans.factory.config.PropertiesFactoryBean loadProperties 
INFO: Loading properties file from URL [jar:file:/D:/Personal%20Data/Softwares/spring-framework-4.0.0.RELEASE-dist/SpringIntegration/spring-integration-3.0.0.RELEASE-dist/spring-integration-3.0.0.RELEASE/libs/spring-integration-core-3.0.0.RELEASE.jar!/META-INF/spring.integration.default.properties] 
Mar 04, 2014 4:46:23 PM org.springframework.integration.config.xml.IntegrationNamespaceHandler registerHeaderChannelRegistry 
INFO: No bean named 'integrationHeaderChannelRegistry' has been explicitly defined. Therefore, a default DefaultHeaderChannelRegistry will be created. 
Mar 04, 2014 4:46:23 PM org.springframework.integration.config.xml.DefaultConfiguringBeanFactoryPostProcessor registerErrorChannel 
INFO: No bean named 'errorChannel' has been explicitly defined. Therefore, a default PublishSubscribeChannel will be created. 
Mar 04, 2014 4:46:23 PM org.springframework.integration.config.xml.DefaultConfiguringBeanFactoryPostProcessor registerTaskScheduler 
INFO: No bean named 'taskScheduler' has been explicitly defined. Therefore, a default ThreadPoolTaskScheduler will be created. 
Mar 04, 2014 4:46:23 PM org.springframework.beans.factory.config.PropertiesFactoryBean loadProperties 
INFO: Loading properties file from URL [jar:file:/D:/Personal%20Data/Softwares/spring-framework-4.0.0.RELEASE-dist/SpringIntegration/spring-integration-3.0.0.RELEASE-dist/spring-integration-3.0.0.RELEASE/libs/spring-integration-core-3.0.0.RELEASE.jar!/META-INF/spring.integration.default.properties] 
Mar 04, 2014 4:46:23 PM org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler initialize 
INFO: Initializing ExecutorService 'taskScheduler' 
Mar 04, 2014 4:46:23 PM org.springframework.context.support.DefaultLifecycleProcessor start 
INFO: Starting beans in phase -2147483648 
Mar 04, 2014 4:46:23 PM org.springframework.integration.endpoint.EventDrivenConsumer logComponentSubscriptionEvent 
INFO: Adding {logging-channel-adapter:_org.springframework.integration.errorLogger} as a subscriber to the 'errorChannel' channel 
Mar 04, 2014 4:46:23 PM org.springframework.integration.channel.PublishSubscribeChannel adjustCounterIfNecessary 
INFO: Channel 'org[email protected]34d0cdd0.errorChannel' has 1 subscriber(s). 
Mar 04, 2014 4:46:23 PM org.springframework.integration.endpoint.EventDrivenConsumer start 
INFO: started _org.springframework.integration.errorLogger 
Mar 04, 2014 4:46:23 PM org.springframework.context.support.DefaultLifecycleProcessor start 
INFO: Starting beans in phase 0 
Mar 04, 2014 4:46:23 PM org.springframework.integration.endpoint.EventDrivenConsumer logComponentSubscriptionEvent 
INFO: Adding {service-activator} as a subscriber to the 'pushChannel' channel 
Mar 04, 2014 4:46:23 PM org.springframework.integration.channel.DirectChannel adjustCounterIfNecessary 
INFO: Channel 'org[email protected]34d0cdd0.pushChannel' has 1 subscriber(s). 
Mar 04, 2014 4:46:23 PM org.springframework.integration.endpoint.EventDrivenConsumer start 
INFO: started org.springframework.integration.config.ConsumerEndpointFactoryBean#0 
Exception in thread "main" org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type [org.springframework.integration.MessageChannel] is defined: expected single matching bean but found 3: pushChannel,nullChannel,errorChannel 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:312) 
    at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:985) 
    at main.Main.main(Main.java:17) 

回答