我构建了一个库(一个类的bounch),它使用spring库和context-application.xml文件(使用编组解析REST响应)。
此时我在我的项目中包含了jar,我正在尝试调用其中一个类,但它告诉我缺少context-application.xml文件。
我正在尝试使用以下方法加载应用程序上下文:
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("application-context.xml");
我不太清楚(我是Spring框架中的新手)将jar文件放在哪里使用。
有可能吗?谁能帮助我?
答案 0 :(得分:2)
它需要位于CLASSPATH的根目录中。在您的情况下 - JAR文件的根目录。如果您使用的是maven - 它是/src/main/resources
文件夹。
答案 1 :(得分:1)
如果我理解正确,你想在你的jar之外的jar文件和包含jar文件的主项目中使用XML吗?如果是这样,那么这不是一个好的做法,因为在这种情况下你的jar文件将依赖于应用程序因此不会真正可再发行,所以有一个jar文件的重点是什么?如果你看一下CXF JAX-RS的实现,它就是如何很好地解决它的一个很好的例子。它有一个相反的方法。 CXF里面有许多自己的spring xml文件,需要从主webapp中包含这样的文件。
<import resource="classpath:META-INF/cxf/cxf.xml"/>
<import resource="classpath:META-INF/cxf/cxf-extension-jaxrs-binding.xml"/>
<import resource="classpath:META-INF/cxf/cxf-servlet.xml"/>
通过这种方式,您可以在同一XML文件中定义主要的webapp类和jar类。这里有一个完整的例子:
http://cxf.apache.org/docs/jax-rs.html#JAX-RS-JAXRSandSpringAOP