Spring XD Java配置不加载xml资源

时间:2015-10-21 03:57:25

标签: spring-xd

我正在使用Spring XD创建流twittersearch,然后连接到我的推文处理器,然后连接到日志。

我使用Java配置类都没问题,然后我想使用@ImportResource

在我的ModuleConfiguration类中添加applicationContext.xml
@Configuration
@ImportResource("config/applicationContext.xml")
@EnableIntegration
public class ModuleConfiguration {

    @Bean
    MessageChannel input() {
        return new DirectChannel();
    }

    @Bean
    MessageChannel output() {
        return new DirectChannel();
    }

    @Autowired
    TweetProcessor tweetProcessor;

    @Bean
    freemarker.template.Configuration configuration() {
        return new freemarker.template.Configuration(freemarker.template.Configuration.VERSION_2_3_23);
    }
}

applicationContext.xml内容:

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

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

    <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <list>
                <value>file:/apps/conf/application.properties</value>
            </list>
        </property>
    </bean>

</beans>

我的流定义:stream create --name JustCreate --definition&#34; twittersearch --query = Java |推特处理器|登录&#34; --deploy

当部署流时出现错误:

2015-10-21T11:26:26+0800 1.2.1.RELEASE WARN twitterSource-1-1 twitter.TwitterSearchChannelAdapter - Exception while reading stream.
org.springframework.messaging.MessageDeliveryException: Dispatcher has no subscribers for channel 'singlenode:default,admin,singlenode,hsqldbServer:9393.JustCreate.0'.; nested exception is org.springframework.integration.MessageDispatchingException: Dispatcher has no subscribers

我也试过使用spring-module.xml方法(根本不使用Java配置),这种方法有效。

但我很好奇Spring XD Java配置是否不支持@ImportResource注释。

感谢。

1 个答案:

答案 0 :(得分:0)

Spring XD在找到并解析配置资源后,以正常的方式从XML或@Configuration类创建应用程序上下文。 XD查看 config 目录。如果找到 .xml .groovy 文件,它将使用该文件创建应用程序上下文。如果没有,它将查找.properties文件和base_packages属性来扫描@Configuration类。由于您在config目录中有一个XML文件,因此将忽略@Configuration。要导入资源,请将它们放在不同的路径中。这可以是config的子目录或不同的顶级目录。这在Modules section of the XD reference guide

中有详细讨论