这似乎是一个简单的问题(如果是这种情况,请原谅),但是经过20分钟的在线搜索,我没有找到任何明智的答案。
我有几个要通过QuartzRunner
执行的cron作业,现在我们称为第一个FooBean
和第二个BarBean
。 FooBean
每天在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尝试从此处加载该文件,所以该文件应该在您的类路径(主/资源)上可用。