我正在使用正在使用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>
我这样做但是没有解决问题。
有什么建议吗?
答案 0 :(得分:1)
我的建议是将您的应用程序划分为符合域驱动设计,即将业务逻辑与前端逻辑等分开。
即。将所有不直接相关的东西输出到一个罐子中,并将你的网络逻辑保持在战争中 - 将它们打包在一起以将两者结合起来。 文件结构应该如下所示,并通过.pom中的依赖项组成:
|根/罐
| root / war(将jar作为依赖项)
| root / ear(将jar和war都作为依赖项)
Java EE应用程序在Java Archive(JAR)文件(Web)中提供 存档(WAR)文件或企业存档(EAR)文件。 WAR或EAR file是标准的JAR(.jar)文件,扩展名为.war或.ear。 使用JAR,WAR和EAR文件和模块可以实现 使用一些来组装许多不同的Java EE应用程序 相同的组件。无需额外编码;这只是一个问题 将各种Java EE模块组装(或打包)到Java EE JAR中, WAR或EAR文件。
根据我的理解,您希望拥有一个类似于大多数应用程序的应用程序&#34;企业应用程序&#34;,即具有许多EE技术的应用程序。您应该将其打包为.ear,然后将其部署在JBoss中,以使其无缝工作(并按照惯例)。
可以在此处找到更多信息:http://docs.oracle.com/javaee/6/tutorial/doc/bnaby.html