- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
您好,感谢您的观看;-)
我们的问题/错误是:
javax.persistence.PersistenceException: [PersistenceUnit: PUname] Unable to build EntityManagerFactory
...
Caused by: org.hibernate.HibernateException: Could not instantiate dialect class
...
Caused by: java.lang.ClassCastException: org.hibernate.dialect.MySQLDialect cannot be cast to org.hibernate.dialect.Dialect
...
(请参阅底部的完整堆栈跟踪)
它发生在使用以下技术的基于 GWT 的 Web 应用程序中:
要强调的事实是它在 Tomcat 中确实有效。仅在开发模式(又称托管模式)(使用 Jetty)中,使用 GWT Maven 插件(目标为 gwt:run),我们才会收到 ClassCastException。我们在使用 Hibernate 依赖项时运气不佳(添加 hibernate-validator 和/或 hibernate-jpa-2.0-api)。在实际使用任何服务之前,JPA 启动时会引发 ClassCastException。顺便说一句:JPA 是使用 Guice 设置的:
install(new JpaPersistModule("PUname"));
filter("/*").through(PersistFilter.class);
可能值得一提的是,禁用方言设置(在 persistence.xml 中)也会在 JPA 启动时创建另一个 ClassCastException:
javax.persistence.PersistenceException: [PersistenceUnit: dsmgmt] Unable to build EntityManagerFactory
...
Caused by: org.hibernate.HibernateException: Unable to instantiate specified TransactionFactory class [org.hibernate.engine.transaction.internal.jdbc.JdbcTransactionFactory]
...
Caused by: java.lang.ClassCastException: org.hibernate.engine.transaction.internal.jdbc.JdbcTransactionFactory cannot be cast to org.hibernate.engine.transaction.spi.TransactionFactory
...
为什么它会在 Jetty 中崩溃?可能是什么原因导致的或者如何解决?
文件:META-INF/persistence.xml
<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
<persistence-unit name="PUname" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>our.test.class</class>
<properties>
<property name="hibernate.connection.username" value="user"/>
<property name="hibernate.connection.password" value="pass"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
<property name="hibernate.connection.url" value="jdbc:mysql://machine:3306/db"/>
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
</properties>
</persistence-unit>
</persistence>
我们在网络应用程序中的 JAR:
445.288 antlr-2.7.7.jar
150.774 antlr-runtime-3.1.3.jar
4.467 aopalliance-1.0.jar
57.963 classmate-0.5.4.jar
575.389 commons-collections-3.2.1.jar
52.543 commons-exec-1.1.jar
59.590 commons-fileupload-1.2.2.jar
163.151 commons-io-2.1.jar
284.220 commons-lang-2.6.jar
313.898 dom4j-1.6.1.jar
131.929 dsmgmt-shared-0.1-SNAPSHOT.jar
1.006.424 ehcache-core-2.4.3.jar
710.492 guice-3.0.jar
36.998 guice-assistedinject-3.0.jar
27.633 guice-persist-3.0.jar
65.012 guice-servlet-3.0.jar
5.004.997 gwt-servlet-2.3.0.jar
28.339 gwtp-dispatch-server-0.6.jar
17.184 gwtp-dispatch-server-guice-0.6.jar
30.402 gwtp-dispatch-shared-0.6.jar
81.426 hibernate-commons-annotations-4.0.0.Final.jar
4.347.499 hibernate-core-4.0.0.CR6.jar
127.259 hibernate-ehcache-4.0.0.CR6.jar
471.832 hibernate-entitymanager-4.0.0.CR6.jar
102.661 hibernate-jpa-2.0-api-1.0.1.Final.jar
366.592 hibernate-validator-4.2.0.Final.jar
70.928 jandex-1.0.3.Final.jar
644.148 javassist-3.12.1.GA.jar
2.497 javax.inject-1.jar
60.542 jboss-logging-3.1.0.CR1.jar
11.209 jboss-transaction-api_1.1_spec-1.0.0.Final.jar
859.016 jna-3.2.3.jar
213.781 jsch-0.1.44-1.jar
281.579 jsoup-1.6.1.jar
481.535 log4j-1.2.16.jar
789.885 mysql-connector-java-5.1.18.jar
1.351.561 org.eclipse.jgit-1.0.0.201106090707-r.jar
601.287 pd4ml-3.80b1.jar
149.846 pd4ml-ss-css-3.80b1.jar
25.962 slf4j-api-1.6.4.jar
9.748 slf4j-log4j12-1.6.4.jar
743.673 sqljet-1.0.4.jar
172.023 stringtemplate-3.2.jar
1.889.196 svnkit-1.3.5.jar
251.371 trilead-ssh2-build213-svnkit-1.3-patch.jar
47.433 validation-api-1.0.0.GA.jar
109.318 xml-apis-1.0.b2.jar
完整的堆栈跟踪:
javax.persistence.PersistenceException: [PersistenceUnit: PUname] Unable to build EntityManagerFactory
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:916)
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:887)
at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:56)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:63)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47)
at com.google.inject.persist.jpa.JpaPersistService.start(JpaPersistService.java:94)
at com.google.inject.persist.PersistFilter.init(PersistFilter.java:77)
at com.google.inject.servlet.FilterDefinition.init(FilterDefinition.java:114)
at com.google.inject.servlet.ManagedFilterPipeline.initPipeline(ManagedFilterPipeline.java:98)
at com.google.inject.servlet.GuiceFilter.init(GuiceFilter.java:172)
at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:593)
at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1220)
at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:513)
at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
at com.google.gwt.dev.shell.jetty.JettyLauncher$WebAppContextWithReload.doStart(JettyLauncher.java:468)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
at org.mortbay.jetty.handler.RequestLogHandler.doStart(RequestLogHandler.java:115)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
at org.mortbay.jetty.Server.doStart(Server.java:222)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
at com.google.gwt.dev.shell.jetty.JettyLauncher.start(JettyLauncher.java:672)
at com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:509)
at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:1068)
at com.google.gwt.dev.DevModeBase.run(DevModeBase.java:811)
at com.google.gwt.dev.DevMode.main(DevMode.java:311)
Caused by: org.hibernate.HibernateException: Could not instantiate dialect class
at org.hibernate.service.jdbc.dialect.internal.DialectFactoryImpl.constructDialect(DialectFactoryImpl.java:82)
at org.hibernate.service.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:64)
at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:142)
at org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:81)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:160)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:133)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:71)
at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2259)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2255)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1724)
at org.hibernate.ejb.EntityManagerFactoryImpl.<init>(EntityManagerFactoryImpl.java:76)
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:907)
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:887)
at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:56)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:63)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47)
at com.google.inject.persist.jpa.JpaPersistService.start(JpaPersistService.java:94)
at com.google.inject.persist.PersistFilter.init(PersistFilter.java:77)
at com.google.inject.servlet.FilterDefinition.init(FilterDefinition.java:114)
at com.google.inject.servlet.ManagedFilterPipeline.initPipeline(ManagedFilterPipeline.java:98)
at com.google.inject.servlet.GuiceFilter.init(GuiceFilter.java:172)
at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:593)
at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1220)
at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:513)
at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
at com.google.gwt.dev.shell.jetty.JettyLauncher$WebAppContextWithReload.doStart(JettyLauncher.java:468)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
at org.mortbay.jetty.handler.RequestLogHandler.doStart(RequestLogHandler.java:115)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
at org.mortbay.jetty.Server.doStart(Server.java:222)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
at com.google.gwt.dev.shell.jetty.JettyLauncher.start(JettyLauncher.java:672)
at com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:509)
at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:1068)
at com.google.gwt.dev.DevModeBase.run(DevModeBase.java:811)
at com.google.gwt.dev.DevMode.main(DevMode.java:311)
Caused by: java.lang.ClassCastException: org.hibernate.dialect.MySQLDialect cannot be cast to org.hibernate.dialect.Dialect
at org.hibernate.service.jdbc.dialect.internal.DialectFactoryImpl.constructDialect(DialectFactoryImpl.java:73)
at org.hibernate.service.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:64)
at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:142)
at org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:81)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:160)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:133)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:71)
at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2259)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2255)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1724)
at org.hibernate.ejb.EntityManagerFactoryImpl.<init>(EntityManagerFactoryImpl.java:76)
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:907)
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:887)
at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:56)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:63)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47)
at com.google.inject.persist.jpa.JpaPersistService.start(JpaPersistService.java:94)
at com.google.inject.persist.PersistFilter.init(PersistFilter.java:77)
at com.google.inject.servlet.FilterDefinition.init(FilterDefinition.java:114)
at com.google.inject.servlet.ManagedFilterPipeline.initPipeline(ManagedFilterPipeline.java:98)
at com.google.inject.servlet.GuiceFilter.init(GuiceFilter.java:172)
at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:593)
at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1220)
at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:513)
at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
at com.google.gwt.dev.shell.jetty.JettyLauncher$WebAppContextWithReload.doStart(JettyLauncher.java:468)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
at org.mortbay.jetty.handler.RequestLogHandler.doStart(RequestLogHandler.java:115)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
at org.mortbay.jetty.Server.doStart(Server.java:222)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
at com.google.gwt.dev.shell.jetty.JettyLauncher.start(JettyLauncher.java:672)
at com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:509)
at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:1068)
at com.google.gwt.dev.DevModeBase.run(DevModeBase.java:811)
at com.google.gwt.dev.DevMode.main(DevMode.java:311)
最诚挚的问候,亚历山大
最佳答案
我也遇到过这个问题。经过一番调查,我发现这是 Google Eclipse Plugin + Jetty + Hibernate 类加载的特殊行为。
详细信息:事实上,在 Eclipse 运行或应用程序期间,库会加载两次:第一次加载到应用程序实例类加载器,第二次加载到 jetty 的 Web 应用程序类加载器。 Hibernate 在加载 sql 方言期间有特殊的类加载观察,以检查类加载器层次结构,从而导致实例不同。
解决方案:不是这种情况的真正解决方案,但我已经设法通过在外部服务器上调试 GWT 应用程序运行方式 -> Web 应用程序(在外部服务器上运行)来处理它
希望对你有帮助
关于仅在 GWT 托管模式下的 Hibernate ClassCastException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8149401/
我正在编写一个 mapreduce 应用程序,它接受(键,值)格式的输入并只显示与 reducer 输出相同的数据。 这是示例输入: 1500s 1 1960s 1 Aldus 1 在下面
我不明白,我有一个典型的消息源 content.Language 我可以得到它就像 @Autowire protec
我已经为抽屉导航编写了一个运行良好的程序,但最近我尝试为个人资料图片和 TextView 放置一个 ImageView,之后它给了我一个 ClassCastException。 main_activi
这个问题不太可能帮助任何 future 的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visit
@Override public void onPause() { super.onPause(); save(notes.itemSelected); } @Override pub
描述 我正在尝试创建一种自定义语言,我想将词法分析器规则与解析器规则分开。此外,我的目标是将词法分析器和解析器规则进一步划分为特定文件(例如,通用词法分析器规则和关键字规则)。 但我似乎无法让它发挥作
我正在尝试使用以下代码为给定的 Runnable 对象创建代理: public class WorkInvocationHandler implements InvocationHandler {
我有两个非常简单的类,一个扩展了另一个: public class LocationType implements Parcelable { protected int locid =
我遇到了 ClassCastException :Cannot cast my.package.classA to my.package.classA.请注意,(规范)类(名称)是相同的。 我知道这应
我有一个代码试图将一个函数包装在另一个执行动态类型检查的函数中: class Base class Foo extends Base class Bar extends Base object Mai
我使用hadoop 0.18.3遇到以下错误 java.lang.ClassCastException:org.apache.hadoop.io.Text无法转换为org.apache.hadoop.
在 org.dozer.BeanFactory.createBean(Object, Class, String) 的实现中我尝试将对象转换为它的类型。如果我部署所有 bundle ,即关闭并启动所有
我有这个代码: package Maven_test.Maven_project_test; public class Test { class A { int i = 10;
我一直在尝试对 Wicket 的 WebSession 进行子类化,以便可以实现基本的身份验证系统。我已遵循 Wicket 引用库中的指南。当我在网页中尝试以下操作时,出现 ClassCastExce
我正在构建一个 kotlin AAR 库,我需要在发布之前对其进行混淆。我有以下结构: package com.example.token interface TokenManager { s
Kotlin 引入了 here 中描述的声明站点差异. 在某些情况下,泛型参数的 out/in 关键字可能会导致 ClassCastException。我的程序如下所示。 fun main(args:
我正在 AnyLogic 中进行基于代理的传染病流行模拟。我的模型中有两种代理类型 - 人员和建筑物。我正在尝试编写一个函数来计算代理类型“人员”在任何给定时间点所具有的传染性接触数量。下面是我的函数
我有一个 EditContact 类。打开后,它会显示哪些复选框已选中或未选中。这是通过我的适配器中的一些代码完成的,它可以正常工作: //This is for EditContact, t
这个问题已经有答案了: 奥 git _a (2 个回答) 已关闭 5 年前。 我正在获取 ClassCastException 。这两个类来自不同的 jar,但是JettyContinuationPr
我想在 Java 中使用一组对,但是当我调用 contains() 来查看它是否已包含特定对时,我总是会得到 ClassCastException >。有没有办法避免这种行为? 它的实例化如下: pr
我是一名优秀的程序员,十分优秀!