2014-09-12 94 views
1

我正在使用JPA,Hibernate的应用程序。我可以在Tomcat上部署,但在jBoss上它不会部署。我收到以下错误。Jboss 7部署/冲突问题

JBAS011466:PersistenceProvider类“org.hibernate.jpa.HibernatePersistenceProvider”未找到

做了一些谷歌搜索,我发现一些文章,建议我越来越冲突,因为我有自己的JPA,休眠,持久性API罐包装后进入我的战争。我想告诉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> 

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

有什么建议吗?

回答

1

我的建议是划分您的应用程序,以符合领域驱动设计,从前端逻辑等

即即独立的业务逻辑将所有不直接相关的东西导出到jar中,并将你的web逻辑保存在战争中 - 将它们包装在耳朵中以将两者结合起来。 文件结构应该像下面,并通过在.pom依赖组成:

|根/罐

|根/战争(有罐子作为依赖)

|根/耳(既有罐子和战争的依赖)

Java EE应用程序的Java归档(JAR)文件传输,网络 存档(WAR)文件或企业归档(EAR)文件。 WAR或EAR 文件是扩展名为.war或.ear的标准JAR(.jar)文件。 使用JAR,WAR和EAR文件和模块可使 使用某些 相同组件组装大量不同的Java EE应用程序。不需要额外的编码;仅将 组装(或打包)到Java EE JAR, WAR或EAR文件中的各种Java EE模块。

根据我的理解,您希望有一个类似于最常见的“企业应用程序”的应用程序,即具有许多EE技术的应用程序。你应该将它打包成一个.ear文件,然后将其部署到JBoss中,以便它能够无缝工作(并按照惯例)。

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

+0

我没有与任何经验,有没有办法与JBoss部署,structure.xml办呢? – greyfox 2014-09-13 00:58:46