我无法将java dsl config导入XML配置。
@Configuration
@EnableIntegration
@IntegrationComponentScan
public class JavaApplicationContext {
@MessagingGateway
public interface helloService {
@Gateway(requestChannel = "requestChnl")
public String sayHello(String msg);
}
@Bean
public IntegrationFlow helloIntFlow() {
return IntegrationFlows.from("requestChnl")
.transform(new GenericTransformer<String, String>() {
@Override
public String transform(String source) {
// TODO Auto-generated method stub
return "Hello "+source;
}})
.get();
}
}
在XML配置中,我有<bean id="hellGtwy" class="com.example.JavaApplicationContext" />
引起:org.springframework.beans.factory.BeanCreationException: 创建名为&#39; helloIntFlow&#39;的bean时出错定义于 com.example.JavaApplicationContext:bean的初始化失败; 嵌套异常是 org.springframework.beans.factory.BeanCreationException:错误 使用名称&#39; org.springframe创建bean work.integration.config.SplitterFactoryBean#6&#39;:FactoryBean扔了 对象创建异常;嵌套异常是 java.lang.IllegalArgumentException:AbstractReplyPr oducingMessageHandler只能被引用一次(MY_SPLITTER_ID) - 使用范围=&#34;原型&#34;
我无法将异常与我的代码联系起来。我在java dsl config中没有拆分器。
答案 0 :(得分:0)
实际上,Spring团队建议将XML配置注入Java&amp;通过@ImportResource
进行注释配置。
另一方面MY_SPLITTER_ID
也与Spring Integration Java DSL无关。使用XML配置即可。
如果您希望将注释配置与XML配合使用,请尝试使用<component-scan>
而不是原始<bean>
。