【问题标题】:Load persistence.xml from aar in tomcat在tomcat中从aar加载persistence.xml
【发布时间】:2011-01-21 04:58:40
【问题描述】:

我有一个基于 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。

谢谢!

【问题讨论】:

    标签: java tomcat jpa axis2 openjpa


    【解决方案1】:

    我找到了解决办法。

    在services.xml中加入下面一行,就可以成功加载打包在aar文件中的persistence.xml了。

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

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

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

    TCCL - 线程上下文类加载器

    • 默认 - 现状,正常行为
    • 复合 - TCCL 包含所有 来自环境(比如 webapp)的 jars 以及在
    • 中指定的那些
    • 服务 /lib 服务下的存档 (aar) 文件 - TCCL 包含来自 服务存档 (aar)

    【讨论】:

    猜你喜欢
    • 2010-12-22
    • 2011-07-28
    • 2011-02-24
    • 2014-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-08
    相关资源
    最近更新 更多