- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在创建一个 Spring MVC 和 Hibernate/JPA Web 应用程序,但在配置应用程序和 jboss 部署描述符时遇到问题,以便我可以将持久性管理委托(delegate)给我的 Web 应用程序而不是 JBoss AS7。我正在针对 JavaEE7、Spring 4.2.2-Final 和 Hibernate 4.3.11 进行开发。
这是我的jboss-deployment-struct.xml的内容
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure >
<deployment>
<exclude-subsystems>
<subsystem name="jpa"/>
</exclude-subsystems>
<exclusions>
<module name="org.hibernate" />
<module name="javaee.api" />
<module name="javax.persistence.api" />
</exclusions>
<dependencies>
<module name="javaee.api">
<imports>
<exclude path="javax/persistence" />
</imports>
</module>
</dependencies>
</deployment>
</jboss-deployment-structure>
使用这个,我能够依靠其默认的 hibernate-jpa-2.0-api.jar 解决 AS7 的初始问题,并使用与我的 Web 应用程序一起部署的 hibernate-jpa-2.1-api.jar 。
但是,我现在通过管理控制台启动网络应用程序时遇到此错误。
12:56:48,885 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/mis-dashboard]] (ServerService Thread Pool -- 230) JBWEB000289: Servlet appServlet threw load() exception: java.lang.LinkageError: loader constraint violation in interface itable initialization: when resolving method "org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(Ljava/lang/String;Ljava/util/Map;)Ljavax/persistence/EntityManagerFactory;" the class loader (instance of org/jboss/modules/ModuleClassLoader) of the current class, org/hibernate/jpa/HibernatePersistenceProvider, and the class loader (instance of org/jboss/modules/ModuleClassLoader) for interface javax/persistence/spi/PersistenceProvider have different Class objects for the type erFactory(Ljava/lang/String;Ljava/util/Map;)Ljavax/persistence/EntityManagerFactory; used in the signature
at java.lang.Class.getDeclaredConstructors0(Native Method) [rt.jar:1.7.0_45]
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2493) [rt.jar:1.7.0_45]
at java.lang.Class.getConstructor0(Class.java:2803) [rt.jar:1.7.0_45]
at java.lang.Class.newInstance(Class.java:345) [rt.jar:1.7.0_45]
at org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter.<init>(HibernateJpaVendorAdapter.java:93) [spring-orm-4.1.9.RELEASE.jar:4.1.9.RELEASE]
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) [rt.jar:1.7.0_45]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) [rt.jar:1.7.0_45]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) [rt.jar:1.7.0_45]
at java.lang.reflect.Constructor.newInstance(Constructor.java:526) [rt.jar:1.7.0_45]
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:147) [spring-beans-4.2.2.RELEASE.jar:4.2.2.RELEASE]
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:89) [spring-beans-4.2.2.RELEASE.jar:4.2.2.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1098) [spring-beans-4.2.2.RELEASE.jar:4.2.2.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1050) [spring-beans-4.2.2.RELEASE.jar:4.2.2.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:510) [spring-beans-4.2.2.RELEASE.jar:4.2.2.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) [spring-beans-4.2.2.RELEASE.jar:4.2.2.RELEASE]
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:299) [spring-beans-4.2.2.RELEASE.jar:4.2.2.RELEASE]
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:122) [spring-beans-4.2.2.RELEASE.jar:4.2.2.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1481) [spring-beans-4.2.2.RELEASE.jar:4.2.2.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1226) [spring-beans-4.2.2.RELEASE.jar:4.2.2.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543) [spring-beans-4.2.2.RELEASE.jar:4.2.2.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) [spring-beans-4.2.2.RELEASE.jar:4.2.2.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:305) [spring-beans-4.2.2.RELEASE.jar:4.2.2.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) [spring-beans-4.2.2.RELEASE.jar:4.2.2.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:301) [spring-beans-4.2.2.RELEASE.jar:4.2.2.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:196) [spring-beans-4.2.2.RELEASE.jar:4.2.2.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1048) [spring-context-4.2.2.RELEASE.jar:4.2.2.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:825) [spring-context-4.2.2.RELEASE.jar:4.2.2.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:537) [spring-context-4.2.2.RELEASE.jar:4.2.2.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:667) [spring-webmvc-4.2.2.RELEASE.jar:4.2.2.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:633) [spring-webmvc-4.2.2.RELEASE.jar:4.2.2.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:681) [spring-webmvc-4.2.2.RELEASE.jar:4.2.2.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:552) [spring-webmvc-4.2.2.RELEASE.jar:4.2.2.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:493) [spring-webmvc-4.2.2.RELEASE.jar:4.2.2.RELEASE]
at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136) [spring-webmvc-4.2.2.RELEASE.jar:4.2.2.RELEASE]
at javax.servlet.GenericServlet.init(GenericServlet.java:242) [jboss-servlet-api_3.0_spec-1.0.2.Final-redhat-1.jar:1.0.2.Final-redhat-1]
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1194) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1100) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3591) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3798) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
at org.jboss.as.web.deployment.WebDeploymentService.doStart(WebDeploymentService.java:161) [jboss-as-web-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
at org.jboss.as.web.deployment.WebDeploymentService.access$000(WebDeploymentService.java:59) [jboss-as-web-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
at org.jboss.as.web.deployment.WebDeploymentService$1.run(WebDeploymentService.java:94) [jboss-as-web-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [rt.jar:1.7.0_45]
at java.util.concurrent.FutureTask.run(FutureTask.java:262) [rt.jar:1.7.0_45]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_45]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_45]
at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_45]
at org.jboss.threads.JBossThread.run(JBossThread.java:122)
12:56:48,901 DEBUG [org.apache.jasper.compiler] (ServerService Thread Pool -- 230) JBWEB005025: Parent
从异常情况来看,显然 javax.persistence.EntityManagerFactory 类的 Jboss ModuleClassLoader 存在冲突。我认为我的部署描述符中的条目会阻止这种情况,但显然情况并非如此。
我是一位经验丰富的软件工程师,在应用程序服务器管理方面有一些经验,但老实说,仅够危险。通常,我会依赖服务器管理团队,但这里没有这样的团队。
有人有过这种情况或类似情况的经验吗?关于如何修复此 LinkageError 并解决冲突有什么想法吗?
提前谢谢您,
mbedded软件
最佳答案
我在使用 JBoss EAP 6.4、Spring 4.2.4 和 Hibernate 4.3.11 时也遇到了类似的问题。
我使用以下 jboss-deployment-struct.xml 并能够部署我的 Web 应用程序:
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
<exclude-subsystems>
<subsystem name="jpa" />
</exclude-subsystems>
<exclusions>
<module name="javaee.api" />
<module name="javax.persistence.api" />
</exclusions>
<dependencies>
<module name="javaee.api">
<imports>
<exclude path="javax/persistence" />
</imports>
</module>
</dependencies>
</deployment>
</jboss-deployment-structure>
但是,每次我重新部署 Web 应用程序时,我都会遇到与您类似的 LinkageError 问题。实现此处描述的解决方法 2 后,一切正常:https://issues.jboss.org/browse/WFCORE-209 .
关于java - HibernatePersistenceProvider.createEntityManagerFactory() 方法的 JBoss AS7 LinkageError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36069191/
我正在按以下方式使用此方法 EntityManagerFactory emftemp = Persistence.createEntityManagerFactory("XYZ"); 我的 persi
我有很多机器,完全相同。所有都运行 Tomcat 8.5.31 和 java 1.8.0_171-b11 我有一个创建实体管理器的数据库类。我在所有机器上从 CDI 调用该类,这有效。 该方法调用cr
我有一个 DBUnit 测试,运行正常,但需要很长时间(4-5 分钟)才能创建实体管理器工厂。我将 JPA 与 hibernate 和 SQL 服务结合使用。如果有人能对此有所了解,将会有很大帮助。我
public class SoapMessageProcessor { private EntityManager em; private static final Logger logger = L
我正在使用 Hibernate 4.2、JPA 2.0 和 Postgres 9.2 代码卡在 Persistence.createEntityManagerFactory("peristence_u
我实际上是在使用 JPA 开发一个 springboot 项目。我正在寻找更好的实现方式,目前它可以工作,但我的印象是这不是最好的方式 @RestController public class
我正在使用 eclipse 。我正在尝试调试未能找到确实位于我的 eclipse 项目目录结构中的持久性单元。 EntityManagerFactory javax.persistence.Persi
我是使用 EclipseLink JPA 进行开发的新手,我使用的是 eclipselink-2.4.0.v20120608-r11652.zip 这个版本。我的问题的完整故事是我的库包含一些 JPA
菜鸟问题在这里。我正在关注 this example/tutorial尝试找出我在主要项目中不断遇到的问题。问题是,entityManagerFactory 一直返回 null(因此,我在尝试运行第一
我正在通过示例项目学习 JPA。每当我执行该程序时,它都会返回 null。我检查了关注 JPA - createEntityManagerFactory returns Null ,但是,这没有帮助。
我有一个 servlet,当我使用 PU 中指定的 H2 调用此方法时,每次调用它时它都会重新创建所有数据库结构。我只能调用这个方法1次吗?如果我可以调用它> 1次,我该怎么做? entityMana
我只是看看ClassGuard (虽然我知道一些 objection )。 但是我得到了 javax.persistence.PersistenceException: [PersistenceUni
我正在创建一个 Spring MVC 和 Hibernate/JPA Web 应用程序,但在配置应用程序和 jboss 部署描述符时遇到问题,以便我可以将持久性管理委托(delegate)给我的 We
我正在尝试通过在我的应用程序中分离模式来实现 Multi-Tenancy 。为此,我有一个 Tenant 实体,其中包含一个 String schemaName,并且我有一个 Singleton St
我有一个完美运行的应用程序客户端部署到带有一些 EJB、实体等的耳朵内的 GlassFish v2 服务器。我正在使用 eclipselink。 目前我的persistence.xml中有:
我是一名优秀的程序员,十分优秀!