从web应用程序访问时,Spring Persistence归档和entitymanager为null



我已经通过spring-roo(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,但我如何验证它是否正在加载子jarFile/META-INF/aapplicationContext.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>

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

<import resource="classpath*:META-INF/spring/applicationContext*.xml" />

现在web应用程序也正在从jar文件加载上下文文件。一切都在起作用。

最新更新