我的依赖jar无法在项目类路径上找到资源

时间:2014-06-17 20:40:45

标签: java spring maven jar

我有一个依赖jar,需要访问jar资源中的文件以及我正在构建的依赖于它的项目的资源。我不确定这是我需要完成的任务还是我需要解决的问题。

jar和依赖它的当前项目都是我的,我可以更改其中一个或两个。它们都是maven和spring。

更多细节:

util.jar
 ->Base.class
-resources
 ->base-context.xml

app
 ->App extends Base
-resources
 ->app-context.xml

要进行故障排除,我可以将app-context移动到jars资源文件夹中,一切都按预期工作。我需要合并类路径。

应用程序/ SRC /测试/ JAVA / COM /我的/应用/ App.class

@ContextConfiguration(locations = "classpath:app-context.xml")
public class App extends Base {...} 

util.jar

@ContextConfiguration(locations = "classpath:util-context.xml")
public abstract class Base extends AbstractTestNGSpringContextTests {...}

app.class的@contextconfiguration失败,因为它无法找到" classpath:app-context.xml"

java.lang.IllegalStateException: Failed to load ApplicationContext ... 
Caused by:     org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [app-context.xml]; 

嵌套异常为java.io.FileNotFoundException: class path resource [app-context.xml] cannot be opened because it does not exist

此文件确实存在,位于应用的资源文件夹中。如果我将app-context.xml文件复制到util.jar资源文件夹中,则会解决错误,但此解决方法不可行作为解决方案。

1 个答案:

答案 0 :(得分:0)

使用7zip / WinZip左右检查创建的jar中的路径(区分大小写!)。

也许试试

classpath:/app-context.xml

util-context.xml似乎错了。

更多maven使用test / resources目录来测试代码。

app/src/test/java/com/my/app/App.class
app/src/test/resources/app-context.xml