JBoss/Wildfly Hibernate 3类加载
我有一个ear文件,其中包含一个JBoss/Wildfly Hibernate 3类加载,hibernate,wildfly,jboss-modules,Hibernate,Wildfly,Jboss Modules,我有一个ear文件,其中包含一个.war文件和许多.jar文件,包括springws和hibernate3。此应用程序将从另一个应用程序服务器移植到Wildfly 到目前为止,由于需要创建的所有模块及其几乎无限的依赖性,这一直是一个巨大的痛苦 我创建了一个jboss deployment structure.xml文件,其中声明了war依赖项: <sub-deployment name="xxx.war"> <dependencies> <m
.war
文件和许多.jar
文件,包括springws
和hibernate3
。此应用程序将从另一个应用程序服务器移植到Wildfly
到目前为止,由于需要创建的所有模块及其几乎无限的依赖性,这一直是一个巨大的痛苦
我创建了一个jboss deployment structure.xml
文件,其中声明了war
依赖项:
<sub-deployment name="xxx.war">
<dependencies>
<module name="org.hibernate" slot="3"/>
<module name="org.spring.jdbc" />
<module name="org.spring.beans" />
<module name="org.spring.core" />
<module name="org.slf4j" />
</dependencies>
</sub-deployment>
问题是,如何更新deployment.xxxEAR.ear.xxp_jar.jar以包含适当的模块依赖项,即
?如果使用Wildfy 10,hibernate 3支持
你使用的是什么版本的Wildfly
如果您使用的是Wildfly 10版本,但仍然希望使用hibernate 3版本,则可以检查打包的webapp中是否有所有hibernate 3 maven依赖项
您还可以在jboss-deployment-structure.xml文件中排除hibernate jboss模块,这样您的webapp就不再依赖Wildfly hibernate jboss模块:
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
<exclusions>
<module name="org.hibernate" />
</exclusions>
</deployment>
</jboss-deployment-structure>
如果您使用Wildfy 10,则支持hibernate 3 你使用的是什么版本的Wildfly 如果您使用的是Wildfly 10版本,但仍然希望使用hibernate 3版本,则可以检查打包的webapp中是否有所有hibernate 3 maven依赖项 您还可以在jboss-deployment-structure.xml文件中排除hibernate jboss模块,这样您的webapp就不再依赖Wildfly hibernate jboss模块:
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
<exclusions>
<module name="org.hibernate" />
</exclusions>
</deployment>
</jboss-deployment-structure>
如果您使用的是Wildfly 9或更低版本,则可以执行以下步骤将hibernate 3.5.6与应用程序捆绑在一起。将所有JAR添加到ear的lib文件夹中。将jboss-deployment-structure.xml添加到ear Meta Inf目录中 persistent.xml=>在绑定hibernate3时添加HibernatePersistence提供程序和提供程序模块非常重要
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/
XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/
ns/persistence/persistence_1_0.xsd" version="1.0" >
<persistence-unit name='pursem'>
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:/com/env/jdbc/OracleDS</jta-data-source>
<properties>
<property name="jboss.entity.manager.jndi.name" value="java:EntityManager/rsem"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.Oracle9Dialect"/>
<property name="jboss.as.jpa.providerModule" value="hibernate3-bundled" />
<!-- property name="hibernate.hbm2ddl.auto" value="update"/ -->
</persistence-unit>
</persistence>
org.hibernate.ejb.HibernatePersistence
java:/com/env/jdbc/OracleDS
jboss-deployment-structure.xml=>删除wildfly组装的hibernate
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<ear-subdeployments-isolated>false</ear-subdeployments-isolated>
<deployment>
<exclusions>
<module name="org.hibernate"/>
</exclusions>
</deployment>
</jboss-deployment-structure>
假的
如果您使用的是Wildfly 9或更低版本,则可以执行以下步骤将hibernate 3.5.6与应用程序捆绑在一起。将所有JAR添加到ear的lib文件夹中。将jboss-deployment-structure.xml添加到ear Meta Inf目录中
persistent.xml=>在绑定hibernate3时添加HibernatePersistence提供程序和提供程序模块非常重要
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/
XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/
ns/persistence/persistence_1_0.xsd" version="1.0" >
<persistence-unit name='pursem'>
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:/com/env/jdbc/OracleDS</jta-data-source>
<properties>
<property name="jboss.entity.manager.jndi.name" value="java:EntityManager/rsem"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.Oracle9Dialect"/>
<property name="jboss.as.jpa.providerModule" value="hibernate3-bundled" />
<!-- property name="hibernate.hbm2ddl.auto" value="update"/ -->
</persistence-unit>
</persistence>
org.hibernate.ejb.HibernatePersistence
java:/com/env/jdbc/OracleDS
jboss-deployment-structure.xml=>删除wildfly组装的hibernate
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<ear-subdeployments-isolated>false</ear-subdeployments-isolated>
<deployment>
<exclusions>
<module name="org.hibernate"/>
</exclusions>
</deployment>
</jboss-deployment-structure>
假的
您必须将Hibernate依赖项添加到xxp\u jar.jar
的pom.xml
文件中。如果我做得正确,依赖项问题仍然存在。有没有办法将它与JBoss模块依赖项联系起来?顺便问一下,您使用的是哪个版本的JBoss/Wildfly?您必须将Hibernate依赖项添加到xxp\u jar.jar
的pom.xml
文件中。如果我做得正确,依赖项问题仍然存在。有没有办法将它与JBoss模块依赖项联系起来?顺便问一下,您使用的是哪个版本的JBoss/Wildfly?雷米,谢谢您回答我的问题。为了回应你的建议,1。我不能忽视Hibernate3。2.我将其作为模块包含在system modules文件夹下。除了Wildfly试图部署子dployment deployment.xxxEAR.ear.xxp_jar.jar之外,一切似乎都正常。这就是它开始抱怨冬眠不存在的地方。为什么您不能完全通过修改ear来忽略Hibernate3JBoss模块,因为您说过它已经包含Hibernate3libs了?另外,你能分享你的自定义HibernateJBoss模块吗?(文件列表加描述符)。ThksHi Remi,我如何通过ear创建依赖关系?我是否被迫使用pom.xml文件?这个应用程序是我继承的。它仍然在使用Ant在Eclipse中构建。好的,首先,对于ear依赖项,您可以依赖jboss模块(有时不需要对进行任何操作),或者在包中包含所需的LIB(ear、war等)。由于您的ear通常包含所有hibernate 3 lib,因此您通常只需在ear jboss-deployment-structure.xml文件中添加hibernate排除。然后,不需要为此配置maven(即使依赖项管理在maven或Ivy+ANT中更容易),遗憾的是,我继续得到以下结果:对于在类路径资源[config/context hibernate.xml]中定义的名为“xxxListener”的bean:类文件或依赖类有问题;嵌套的异常是java.lang.LinkageError:未能链接com/bb/cc/xxy/xxp/listener/xxxListener(服务模块加载器中的模块\“deployment.xxxEAR.ear.persistence_jar.jar:main\”)Remi,感谢您回答我的问题。为了回应你的建议,1。我不能忽视Hibernate3。2.我将其作为模块包含在system modules文件夹下。除了Wildfly试图部署子dployment deployment.xxxEAR.ear.xxp_jar.jar之外,一切似乎都正常。这就是它开始抱怨冬眠不存在的地方。为什么您不能完全通过修改ear来忽略Hibernate3JBoss模块,因为您说过它已经包含Hibernate3libs了?另外,你能分享你的自定义HibernateJBoss模块吗?(文件列表加描述符)。ThksHi Remi,我如何通过ear创建依赖关系?我是否被迫使用pom.xml文件?这个应用程序是我继承的。它仍然在使用Ant在Eclipse中构建