【问题标题】:Jboss 7 Deployment / Conflict IssuesJboss 7 部署/冲突问题
【发布时间】:2014-09-12 21:11:00
【问题描述】:

我正在开发一个使用 JPA、Hibernate 的应用程序。我可以在 Tomcat 上很好地部署,但在 jBoss 上它不会部署。我收到以下错误。

JBAS011466:找不到 PersistenceProvider 'org.hibernate.jpa.HibernatePersistenceProvider'

在进行一些谷歌搜索后,我发现一些文章表明我遇到了冲突,因为我将自己的 JPA、Hibernate、Persistence API jar 打包到我的 WAR 中。我想告诉 jBoss 使用我的这些文件版本。

我发现一篇文章建议将以下内容放在 WEB-INF/jboss-classloading.xml 中。

<classloading xmlns="urn:jboss:classloading:1.0"
    name="timesheet-api.war"
    domain="IsolatedDomain"
    import-all="false"
    parent-first="false" >
</classloading>

我这样做了,但没有解决问题。

有什么建议吗?

【问题讨论】:

    标签: java hibernate jpa jboss


    【解决方案1】:

    我的建议是将您的应用程序划分为符合域驱动设计,即将业务逻辑与前端逻辑等分开。

    即将所有不直接相关的内容导出到 jar 中,并将您的 Web 逻辑保留在战争中 - 将它们打包在耳中以将两者结合起来。 文件结构应如下所示,并通过 .pom 中的依赖项组成:

    |根目录/jar

    |root/war(有 jar 作为依赖项)

    |root/ear (有 jar 和 war 作为依赖)

    Java EE 应用程序以 Java Archive (JAR) 文件、Web 存档 (WAR) 文件或企业存档 (EAR) 文件。战争或耳朵 文件是标准 JAR (.jar) 文件,扩展名为 .war 或 .ear。 使用 JAR、WAR 和 EAR 文件和模块可以 使用一些 相同的组件。不需要额外的编码;这只是一个问题 将各种 Java EE 模块组装(或打包)成 Java EE JAR, WAR 或 EAR 文件。

    据我了解,您希望拥有一个类似于大多数人所说的“企业应用程序”的应用程序,即具有许多 EE 技术的应用程序。您应该将其打包为 .ear,然后将其部署在 JBoss 中以使其无缝工作(并按照惯例)。

    更多信息可以在这里找到:http://docs.oracle.com/javaee/6/tutorial/doc/bnaby.html

    【讨论】:

    • 我没有这方面的经验,有没有办法用 jboss-deployment-structure.xml 做到这一点?
    猜你喜欢
    • 1970-01-01
    • 2013-10-07
    • 1970-01-01
    • 1970-01-01
    • 2011-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-28
    相关资源
    最近更新 更多