我通过spring roo创建了一个jar文件(maven项目 - 持久存档)单元测试运行正常,相关文件位于以下位置
jarFile/META-INF/persistence.xml
jarFile/META-INF/applicationContext.xml
jarFile/META-INF/applicationContext-jpa.xml
jarFile/META-INF/database.properties
单元测试运行正常。
因为它是一个maven项目,我通过执行命令“mvn install”将它添加到本地存储库,之后我将它作为依赖项添加到另一个基于maven的web应用程序。
我正在使用mvn jetty:run命令运行Web应用程序。 Web应用程序中的相关文件是。
webApp/WEB-INF/web.xml
webApp/WEB-INF/applicationContext.xml
问题 *它加载webapp / WEB-INF / applicationContext.xml但是如何验证它是否加载了子jarFile / META-INF / applicationContext.xml?实际上,当我尝试从持久性归档访问服务类方法时,entityManager为NULL。 *如果我尝试在web.xml中放置contextConfigLocation指令(尝试各种选项),它甚至不加载webapp / WEB-INF / applicationContext.xml。
我想要什么 使用来自我的Web应用程序中的持久性归档的服务方法(使用entitymanager)。
提前致谢。
答案 0 :(得分:0)
通过挖掘一下找到答案。 实际上我对包含上下文文件的各种方法/语法感到困惑,尝试使用各种类路径*:xxx语法,但实际上WEB-INF不在类路径上,因此必须将以下内容添加到web.xml中才能加载主webApp / WEB-INF / applicationContext.xml
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
然后必须将以下内容添加到webApp / WEB-INF / applicationContext.xml
<import resource="classpath*:META-INF/spring/applicationContext*.xml" />
现在web应用程序也在从jar文件加载上下文文件。事情正在发挥作用。