我有一个依赖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
资源文件夹中,则会解决错误,但此解决方法不可行作为解决方案。
答案 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