当前位置: 首页 > 知识库问答 >
问题:

Spring Integration Java DSL:在错误通道中数据库记录器不工作

严宏旷
2023-03-14

我有一个数据库记录器MyDatabaseLogger,它在ErrorChannel通道中不执行任何操作。system.out.println命令在errorchannel通道中工作。

我的数据库记录器MyDatabaseLogger可以在其他流中工作。

    @Autowired
@Qualifier("errorChannel")
private PublishSubscribeChannel errorChannel;

@Bean
public IntegrationFlow errorHandlingFlow() {
    return IntegrationFlows
            .from(errorChannel)
            .handle(myDatabaseLogger, "log")
            .handle(message -> System.out
                    .println("The error happened:" + ((MessagingException) message.getPayload()).getMessage()))
            .get();
}

MyDatabaseLogger类是一个简单的Java类,它用存储库写入数据库,存储库扩展了org.springframework.data.repository.crudrepository。在方法ErrorHandlingFlow中,不会向数据库写入任何行。

稍后,我将使用debug日志记录,并尝试对此进行更多研究。

共有1个答案

袁宜
2023-03-14

这里可以使用调试记录器来查找问题的原因。

 类似资料:
  • 我正在尝试为我的SpringCloudDataflow流创建一个自定义异常处理程序,以路由一些要重新排队的错误和其他要DLQ的错误。 为此,我使用了全局Spring集成“errorChannel”和基于异常类型的路由。 这是Spring集成错误路由器的代码: 错误路由器由每个流应用程序通过Spring Boot应用程序上的包扫描获取: 当它与本地 Spring Cloud Dataflow 服务器

  • 尝试站点parse.com将数据加载到数据库中 类DBHelper扩展了SQLiteOpenHelper{ 在模拟器上获取 java.lang.IllegalStateExcema:尝试重新打开已关闭的对象:SQLiteDatabase: /data/data/com.project.test/databases/myDBandroid.database.sqlite.SQLiteClosable

  • 问题内容: 我正在寻找最快和正确的方法来检查数据库中是否存在记录: 您有任何问题吗? 问题答案: 考虑那是你的课 我将您的参数保留为a,但我认为应该将其作为。 它比因为不需要在select子句中从表中检索所有值而更快。 您可以将字符串放入静态最终常量中,以使其更快。

  • 问题内容: 我正在为我的Web应用程序使用SQL Logger。我希望能够记录由用户与GUI交互触发的SQL查询。我在Spring环境中工作,与Maven和Mybatis一起工作。我将Web应用程序打包成一个战争,并将其部署到tomcat上。 我希望能够直接使用SQL来访问数据库。我可以尝试像在Log4j中那样使用SocketAppender / HTMLAppender,并发布查询,以便其他非S

  • 日志: 2021-05-09 14:04:19.356错误22211---[nio-8080-exec-2]O.A.C.C.C.[.[.[/].[dispatcherServlet]:servlet.Service()对于路径[]上下文中的servlet[dispatcherServlet]抛出异常[请求处理失败;嵌套异常为java.lang.NullPointerException:无法调用“c

  • 注意:用户界面已经在 Dreamweaver CC 和更高版本中做了简化。因此,您可能在 Dreamweaver CC 和更高版本中找不到本文中描述的一些选项。有关详细信息,请参阅此文章。 关于数据库记录 显示数据库记录涉及检索储存在数据库或其它内容源中的信息,以及将这些信息呈现到网页上。Dreamweaver 提供了许多显示动态内容的方法,并提供了若干内置的服务器行为,使您可以增强动态内容的表现