我目前正在处理的项目使用了一个包含在.jar文件中的旧应用程序。该应用程序的职责之一是在配置文件发生更改时更新数据库。每次我尝试运行这个文件(它是一个简单的Ant任务扩展),都会在进程早期抛出异常。我反编译了负责的Java文件,并发现抛出异常的位置在这里。我不知道问题出在哪里,因为“hibernate.cfg.xml”与抛出异常的.class文件包含在同一个.jar文件中。
ClassLoader loader = Thread.currentThread().getContextClassLoader();
InputStream in = loader.getResourceAsStream("hibernate.cfg.xml");
if (in == null) {
throw new RuntimeException("Couldn't find built in hibernate config");
}
如果有人有任何想法,甚至只是指引我方向,我将不胜感激。
当然,任何解决方案都必须是外部的,因为客户已经在生产环境中使用了这个程序版本。