在tomcat中从aar加载persistence.xml

时间:2011-01-21 04:58:40

标签: java tomcat jpa axis2 openjpa

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

的Tomcat \ web应用\的axis2 \ WEB-INF \服务

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

的Tomcat \ web应用\的axis2 \ WEB-INF \ lib中

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

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

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

谢谢!

1 个答案:

答案 0 :(得分:4)

我找到了解决方案。

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

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

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

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

TCCL - 线程上下文类加载器

  • default - 现状,正常行为
  • 复合材料 - TCCL包含所有 来自环境的罐子(比如webapp)和
  • 中指定的罐子
  • 服务 / lib服务下的archive(aar)文件 - TCCL包含来自的所有jar文件 服务档案(aar)