1

我已经通过 spring roo (maven project - persistence archive) 创建了一个 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 应用程序。

我正在使用 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)。

提前致谢。

4

1 回答 1

0

通过挖掘一下找到了答案。实际上,我对包含上下文文件的各种方式/语法感到困惑,正在尝试使用各种 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 文件加载上下文文件。事情正在奏效。

于 2012-03-25T09:32:17.220 回答