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

我有几个要通过QuartzRunner执行的cron作业,现在我们称为第一个FooBean和第二个BarBeanFooBean每天在00:00运行6(!)小时,有时执行不正确。仔细研究日志后,我发现当FooBean执行失败时,BarBean无法执行。 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尝试从此处加载该文件,所以该文件应该在您的类路径(主/资源)上可用。

09-25 21:05