在 Spring 集成中添加 'application.errorChannel' 到配置
Add 'application.errorChannel' to config in Spring Integration
我编写了一个程序来从 Solace 队列中读取消息。我收到以下错误。
你能帮忙吗?
代码如下:
我的主要配置如下:
public class ReadFromQueueConfig {
@Autowired
private PrintMessageFromQueue printMessageFromQueue;
String queueName = "MY.SAMPLE.SOLACE.QUEUE";
@Bean
public CachingConnectionFactory jmsConnectionFactory() {
CachingConnectionFactory ccf = new CachingConnectionFactory();
try {
SolConnectionFactory scf = SolJmsUtility.createConnectionFactory();
scf.setHost("host");
scf.setUsername("username");
scf.setVPN("vpm");
scf.setPassword("password");
scf.setDirectTransport(false);
ccf.setTargetConnectionFactory(scf);
} catch (Exception e) {
logger.debug(e.getMessage());
}
return ccf;
}
@Bean
public IntegrationFlow handleJsmInput() {
return IntegrationFlows
.from(Jms.inboundAdapter(jmsConnectionFactory()).destination(queueName))
.handle(printMessageFromQueue)
.get();
}
}
PrintMessageFromQueue.java:
更新:
我的主要 class:
@SpringBootApplication
@EnableIntegration
@IntegrationComponentScan
public class TestReadFromQueueApplication {
public static void main(String[] args) {
SpringApplication.run(TestReadFromQueueApplication.class, args);
}
}
创建 ApplicationContext
后,您可以在 main()
中执行类似的操作:
final Scanner scanner = new Scanner(System.in);
context.close();
因此,您的应用程序不会退出,直到来自控制台的一些输入。
您也可以等待消息被消费,例如通过 QueueChannel.receive()
。
在 Spring 集成示例中的 Apache Kafka 示例中完成了一些阻止 main
的示例:https://github.com/spring-projects/spring-integration-samples/blob/master/basic/kafka/src/main/java/org/springframework/integration/samples/kafka/Application.java
我编写了一个程序来从 Solace 队列中读取消息。我收到以下错误。
你能帮忙吗?
我的主要配置如下:
public class ReadFromQueueConfig {
@Autowired
private PrintMessageFromQueue printMessageFromQueue;
String queueName = "MY.SAMPLE.SOLACE.QUEUE";
@Bean
public CachingConnectionFactory jmsConnectionFactory() {
CachingConnectionFactory ccf = new CachingConnectionFactory();
try {
SolConnectionFactory scf = SolJmsUtility.createConnectionFactory();
scf.setHost("host");
scf.setUsername("username");
scf.setVPN("vpm");
scf.setPassword("password");
scf.setDirectTransport(false);
ccf.setTargetConnectionFactory(scf);
} catch (Exception e) {
logger.debug(e.getMessage());
}
return ccf;
}
@Bean
public IntegrationFlow handleJsmInput() {
return IntegrationFlows
.from(Jms.inboundAdapter(jmsConnectionFactory()).destination(queueName))
.handle(printMessageFromQueue)
.get();
}
}
PrintMessageFromQueue.java:
更新: 我的主要 class:
@SpringBootApplication
@EnableIntegration
@IntegrationComponentScan
public class TestReadFromQueueApplication {
public static void main(String[] args) {
SpringApplication.run(TestReadFromQueueApplication.class, args);
}
}
创建 ApplicationContext
后,您可以在 main()
中执行类似的操作:
final Scanner scanner = new Scanner(System.in);
context.close();
因此,您的应用程序不会退出,直到来自控制台的一些输入。
您也可以等待消息被消费,例如通过 QueueChannel.receive()
。
在 Spring 集成示例中的 Apache Kafka 示例中完成了一些阻止 main
的示例:https://github.com/spring-projects/spring-integration-samples/blob/master/basic/kafka/src/main/java/org/springframework/integration/samples/kafka/Application.java