【发布时间】:2014-07-23 22:05:20
【问题描述】:
我已经在互联网上对这个问题进行了相当多的研究。到目前为止我没有运气。基本上,这段代码在我的 Junit 测试 src\test\java\com\project\utils\MyTestCase.java 上运行良好:
URL urlApplicationContext = this.getClass().getClassLoader().getResource("applicationContext.xml");
final String[] paths = { urlApplicationContext.getFile()};
ApplicationContext ctx = new FileSystemXmlApplicationContext(paths);
这个文件位于那里:
\src\test\resources\applicationContext.xml
但是在 linux 上运行的 Jenkins 机器上我得到了以下错误:
testSimple(com.project.ClientImplTest): IOException 解析 XML 文件中的文件 [/data/continuous/workspace/sonar/main_proj/data/continuous/workspace/sonar/main_proj/target/main/WEB-INF/test-classes/applicationContext.xml]; 嵌套异常是 java.io.FileNotFoundException: 数据/连续/工作区/声纳/main_proj/target/main/WEB-INF/test-classes/applicationContext.xml (没有这样的文件或目录)
我已经验证文件 /data/continuous/workspace/sonar/main_proj/target/main/WEB-INF/test-classes/applicationContext.xml 确实存在。
为什么 getResource() 在 Linux 上找不到正确的路径。由于某种原因,它似乎找到了 data/continous/... 而不是 /data/continous/...因此 FileSystemXmlApplicationContext 可能会因为找不到文件而返回异常。
谢谢
【问题讨论】: