从web应用程序访问时,Spring持久性存档和entitymanager为空

从web应用程序访问时,Spring持久性存档和entitymanager为空,spring,jpa,spring-roo,persistence.xml,Spring,Jpa,Spring Roo,Persistence.xml,我通过SpringRoo(maven项目-持久性归档)创建了一个jar文件,单元测试运行良好,相关文件位于以下位置 jarFile/META-INF/persistence.xml jarFile/META-INF/applicationContext.xml jarFile/META-INF/applicationContext-jpa.xml jarFile/META-INF/database.properties 单元测试运行良好 因为它是一个maven项目,所以我通过执行命令“mvn

我通过SpringRoo(maven项目-持久性归档)创建了一个jar文件,单元测试运行良好,相关文件位于以下位置

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应用程序中

我正在使用mvnjetty:run命令运行web应用程序。web应用程序中的相关文件是

webApp/WEB-INF/web.xml
webApp/WEB-INF/applicationContext.xml
问题 *它正在加载webapp/WEB-INF/applicationContext.xml,但是我如何验证它是否正在加载子文件/META-INF/applicationContext.xml?实际上,当我尝试从持久性归档访问服务类方法时,entityManager为NULL。 *如果我尝试将contextConfigLocation指令(尝试了各种选项)放在web.xml中,它甚至不会加载webapp/web-INF/applicationContext.xml

我想要什么 在我的web应用程序中使用持久性归档中的服务方法(使用entitymanager)


提前谢谢。

通过仔细研究找到了答案。 实际上,我对包含上下文文件的各种方式/语法感到困惑,尝试使用所有种类的classpath*: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>
<import resource="classpath*:META-INF/spring/applicationContext*.xml" />

上下文配置位置
/WEB-INF/applicationContext.xml
然后必须将以下内容添加到webApp/WEB-INF/applicationContext.xml

  <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/applicationContext.xml</param-value>
  </context-param>
<import resource="classpath*:META-INF/spring/applicationContext*.xml" />


现在,Web应用程序也从jar文件加载上下文文件。一切正常。

您是如何导入子应用程序上下文的?是否是这样的:,如果不是,这可能是找不到资源的原因