gpt4 book ai didi

java - 在 Play 中捕获配置错误!框架 2.0.4

转载 作者:搜寻专家 更新时间:2023-10-30 20:57:54 27 4
gpt4 key购买 nike

我的游戏! 2.0.4 web应用目前连接了多个RDS MySQL数据库,配置文件如下:

    # Africa
db.afr.url="jdbc:mysql://<africa-server>:3306/users"
db.afr.driver=com.mysql.jdbc.Driver
db.afr.user=user1
db.afr.password=****
db.afr.logStatements=true

# Europe
db.eur.url="jdbc:mysql://<europe-server>:3306/users"
db.eur.driver=com.mysql.jdbc.Driver
db.eur.user=user1
db.eur.password=****
db.eur.logStatements=true

当所有数据库都在运行时,这工作得很好。但是,如果其中一个数据库关闭(无论出于何种原因),整个应用程序将失败,并抛出配置错误(无法连接到数据库 [afr])。

我如何在启动时捕获配置错误以捕获并忽略/记录这些消息而不是完全杀死服务器?我已经研究过使用 Global.java 的 onError() 覆盖,但我在那里没有运气。

谢谢,大卫

最佳答案

这就是我最终做的事情。这不是一个很好的解决方案,但也许是一个不错的解决方法。

将 play.api.db.BoneCPPlugin 的内容复制到您自己的文件 SafeDBPlugin.scala 中,类名为 SafeDBPlugin。它需要在包 play.api.db 中(尽管您可以像往常一样将该文件放在代码库中您想要的任何位置)。重要的部分是更改方法 onStartup() 中报告配置错误的行,并将其更改为 logger.warn()。

通过将以下行添加到您的 application.conf 来禁用内置的 dbplugin (BoneCPPlugin):

dbplugin=disabled

通过将以下行添加到 play.plugins 来添加您的新插件:

600:play.api.db.SafeDBPlugin

关于java - 在 Play 中捕获配置错误!框架 2.0.4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14579599/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com