1

我有一个基于 openJPA 的项目,我需要将它以aar格式部署到 Tomcat 下的以下文件夹中。

tomcat\webapps\axis2\WEB-INF\services

但似乎该服务无法加载aar文件中 META-INF 文件夹中的 persistence.xml文件。我找到了将aar文件重命名为jar的解决方案,例如 DummySerivce.aar -> DummySerivce.jar 然后将 DummySerivce.jar 放入 lib 文件夹中,确切地说

tomcat\webapps\axis2\WEB-INF\lib

这一次,persistence.xml 可以加载并且服务运行良好。但这不必要地导入了一个未包含在规范中的 jar 文件。

所以我的问题是,有没有办法从aar文件加载 persistence.xml?是否可以在代码中重载persistence.xml 文件的路径?

顺便说一句,persistence.xml 中只留下实体信息,数据库连接参数已经在代码中定义,我使用的是 Axis2。

谢谢!

4

1 回答 1

4

我找到了解决方案。

通过在 services.xml 中添加以下行,可以成功加载打包在 aar 文件中的 persistence.xml。

<parameter name="ServiceTCCL">composite</parameter>

了解详细信息。请参考http://wso2.org/node/1131

现在检查是否有任何副作用。

TCCL - 线程上下文类加载器

  • 默认 - 现状,正常行为
  • 复合 - TCCL 包含来自环境(比如 webapp)的所有 jars 和那些在
  • /lib 服务下的服务归档 (aar) 文件 - TCCL 包含来自服务归档 (aar) 的所有 jar
于 2011-01-21T07:20:47.620 回答