【问题标题】:Use Payara (Glassfish) connection pool with Hibernate在 Hibernate 中使用 Payara (Glassfish) 连接池
【发布时间】:2016-10-21 21:34:01
【问题描述】:

有人可以向我解释一下如何将 Hibernate 与 Payara (Glassfish) Server 一起使用吗? 我在 META-INF 中创建了我的 persistence.xml,将所有需要的 jar 放到了 payara41/glassfish/lib 目录中,但是当我尝试部署我的包时,它找不到任何休眠包,即使我在 Import-Packages 中指定了它们。我可以手动部署每个所需的 Hibernate jar,但其中一些不支持 OSGi。我在这里做错了什么?我只想从 Glassfish 连接池中获取连接,并使用 Hibernate 列出一个表中的所有条目。 顺便说一句,为什么 Payara 没有 Glassfish 那样的更新工具?


为 OndrejM 编辑

我只是希望能够使用 Hibernate 来处理来自 osgi 捆绑包的数据库,仅此而已。

【问题讨论】:

    标签: java hibernate glassfish osgi payara


    【解决方案1】:

    Payara/Glassfish 将 OSGi 包存储在 glassfish/modules 目录中,而不是 glassfish/lib。尝试将您的休眠包放在那里。而且它不必是一个包,你可以把普通的 JAR 放在那里——它会自动变成一个包。

    如果遇到依赖冲突,最好将 hibernate 重新打包到包含所有依赖项的 OSGi 包中。否则,您可能会与其他提供相同软件包但版本不同的 Payara 模块发生冲突。另一种解决方案是指定正确版本的休眠依赖项,以便拾取正确的模块 - 但这可能很棘手且耗时;而且几乎不可能讨论 SO。

    【讨论】:

    • 我在 C:\Program Files (x86)\payara41\glassfish\modules 中有 antlr-2.7.7.jar,但我仍然得到 无法解析 org.hibernate.core [645](R 645.0):缺少要求 [org.hibernate.core [645](R 645.0)] osgi.wiring.package; (osgi.wiring.package=antlr)]
    • 您能更详细地解释您要达到的目标吗?请用详细信息更新问题。将太多模块放入 Payara 安装不是标准做法。您的 antlr JAR 可能与 antlr-repackaged.jar 模块冲突,该模块还包含包 antlr
    • 我改进了我的答案 - 通常我认为您面临 OSGi 模块之间的冲突,这可以通过正确配置依赖项来调整,或者只是将所有休眠依赖项打包在一起。
    猜你喜欢
    • 2019-06-27
    • 1970-01-01
    • 2017-08-17
    • 2021-05-20
    • 1970-01-01
    • 1970-01-01
    • 2010-12-27
    • 1970-01-01
    • 2011-06-30
    相关资源
    最近更新 更多