【发布时间】:2015-11-11 23:20:45
【问题描述】:
我在 Eclipse 中从实体创建表时遇到了一些麻烦。 这个项目最初是在 windows 上的 eclipse 上,我从 mysql 表创建实体并将其导入到项目中。一切都很好。昨天我决定从 windows 切换到 ubuntu,因此我只是备份了 eclipse 项目,认为无论如何我都可以从实体创建表。
所以当我右键单击项目 -> JPA 工具 -> 从实体创建表时,
我收到以下错误:
线程“主”本地异常堆栈中的异常: 异常 [EclipseLink-30005] (Eclipse Persistence Services - 2.6.0.v20140809-296a69f): org.eclipse.persistence.exceptions.PersistenceUnitLoadingException 异常描述:使用 ClassLoader 搜索持久性档案时引发异常:org.eclipse.persistence.dynamic.DynamicClassLoader@6eceb130 内部异常:javax.persistence.PersistenceException:异常 [EclipseLink-28018](Eclipse 持久性服务 - 2.6.0.v20140809-296a69f):org.eclipse.persistence.exceptions.EntityManagerSetupException 异常描述:PersistenceUnit [my-pu] 的预部署失败。 内部异常:java.lang.NoClassDefFoundError:org/eclipse/persistence/jpa/jpql/parser/ExpressionVisitor 在 org.eclipse.persistence.exceptions.PersistenceUnitLoadingException.exceptionSearchingForPersistenceResources(PersistenceUnitLoadingException.java:127) 在 org.eclipse.persistence.jpa.PersistenceProvider.createEntityManagerFactoryImpl(PersistenceProvider.java:107) 在 org.eclipse.persistence.jpa.PersistenceProvider.createEntityManagerFactory(PersistenceProvider.java:179) 在 javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55) 在 org.eclipse.jpt.jpa.eclipselink.core.ddlgen.Main.buildEntityManagerFactory(Main.java:94) 在 org.eclipse.jpt.jpa.eclipselink.core.ddlgen.Main.execute(Main.java:80) 在 org.eclipse.jpt.jpa.eclipselink.core.ddlgen.Main.main(Main.java:68) 引起:javax.persistence.PersistenceException: 异常 [EclipseLink-28018] (Eclipse Persistence Services - 2.6.0.v20140809-296a69f): org.eclipse.persistence.exceptions.EntityManagerSetupException 异常描述:PersistenceUnit [my-pu] 的预部署失败。 内部异常:java.lang.NoClassDefFoundError:org/eclipse/persistence/jpa/jpql/parser/ExpressionVisitor 在 org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.createPredeployFailedPersistenceException(EntityManagerSetupImpl.java:1973) 在 org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.predeploy(EntityManagerSetupImpl.java:1964) 在 org.eclipse.persistence.internal.jpa.deployment.JPAInitializer.callPredeploy(JPAInitializer.java:98) 在 org.eclipse.persistence.jpa.PersistenceProvider.createEntityManagerFactoryImpl(PersistenceProvider.java:96) ... 5 更多 原因:异常 [EclipseLink-28018] (Eclipse Persistence Services - 2.6.0.v20140809-296a69f): org.eclipse.persistence.exceptions.EntityManagerSetupException 异常描述:PersistenceUnit [my-pu] 的预部署失败。 内部异常:java.lang.NoClassDefFoundError:org/eclipse/persistence/jpa/jpql/parser/ExpressionVisitor 在 org.eclipse.persistence.exceptions.EntityManagerSetupException.predeployFailed(EntityManagerSetupException.java:231) ... 9 更多 引起:java.lang.NoClassDefFoundError: org/eclipse/persistence/jpa/jpql/parser/ExpressionVisitor 在 org.eclipse.persistence.internal.jpa.metadata.queries.NamedQueryMetadata.addJPAQuery(NamedQueryMetadata.java:105) 在 org.eclipse.persistence.internal.jpa.metadata.queries.NamedQueryMetadata.process(NamedQueryMetadata.java:192) 在 org.eclipse.persistence.internal.jpa.metadata.MetadataProject.processQueries(MetadataProject.java:1630) 在 org.eclipse.persistence.internal.jpa.metadata.MetadataProcessor.addNamedQueries(MetadataProcessor.java:148) 在 org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.predeploy(EntityManagerSetupImpl.java:1915) ... 7 更多 引起:java.lang.ClassNotFoundException:org.eclipse.persistence.jpa.jpql.parser.ExpressionVisitor 在 java.net.URLClassLoader.findClass(URLClassLoader.java:381) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:424) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 12 更多
Wildfly 默认使用 hibernate 作为 JPA 提供程序,我确实将它切换到 EclipseLink。
【问题讨论】:
标签: java jpa eclipselink wildfly wildfly-8