java - 为什么 getConfiguration 偶尔会抛出 File不能为空?

标签 java

这似乎是一个简单的问题(如果是这样,请原谅),但经过 20 分钟的在线搜索,我没有找到任何合理的答案。

我有几个 cron 作业要通过 QuartzRunner 执行,现在我们调用第一个 FooBean 和第二个 BarBeanFooBean 每天 00:00 运行 6 (!) 小时,有时无法正确执行。仔细研究日志后我发现,当 BarBean 执行失败时,FooBean 也执行失败。 BarBean 每天 03:00 执行,有时会抛出:

 22866 java.lang.NullPointerException: File cannot be <null>
 22867     at org.jconfig.FileWatcher.<init>(FileWatcher.java:54)
 22868     at org.jconfig.handler.AbstractHandler.addFileListener(AbstractHandler.java:39)
 22869     at org.jconfig.ConfigurationManager.addFileListener(ConfigurationManager.java:180)
 22870     at org.jconfig.ConfigurationManager.getConfiguration(ConfigurationManager.java:122)

有时它不会抛出它,然后 FooBean 会正确执行。如果 BarBean 失败,那么日志会重复显示一些事务死锁问题十分钟,然后 JDBC 连接失败一次又一次重复重复近三个小时。我不明白涉及什么文件。抛出错误的行如下所示:

    Configuration config = ConfigurationManager.getConfiguration("inventory");
这里涉及到

org.jconfig命名空间。直观上这似乎是一个错误配置,但我没有找到任何解释该问题的来源。

最佳答案

ConfigurationManagers getConfiguration-Method 尝试从类路径加载配置文件。该函数将给定名称与“_config.xml”连接起来。 在您的情况下,这将是“inventory_config.xml”,该文件应该在您的类路径(主/资源)上可用,因为 ConfigurationManager 尝试从那里加载它。

关于java - 为什么 getConfiguration 偶尔会抛出 File不能为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56358701/

相关文章:

java - Kotlin 方法重载

Java组合框模型并获取所选项目

java - 当 Swing Timer 启动时,ActionListener 类不断重复

java - XML 中默认条目的 Android Spinner 项目布局

java - Java中通过正则表达式提取

java - HtmlUnit 无法获取 IFRAME 添加的 js/ajax

java - 返回和内联

java - 我如何将数组的值设置为我想通过命令调用的变量的名称(在java中)?

java - 在 Android 上使用 Jersey 客户端发布大型 JSON 字符串

java - Jaxb 不保留包中命名空间的大小写