1

我是 JPA 2.0 的新手。我正在使用 eclipse juno 创建一个 JPA 项目(eclipseLink 2.0.2)。

创建 JPA 项目时出现错误

在“JPA Facet 文件更改事件处理程序”期间发生内部错误。

在检查日志时,我得到了这个:

java.lang.NoClassDefFoundError: org/eclipse/persistence/jpa/jpql/AbstractJPQLQueryHelper at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:791) at org.eclipse.osgi .internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:188) 在 org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClassHoldingLock(ClasspathManager.java:632) 在 org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass (ClasspathManager.java:607) 在 org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:568) 在 org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:492) 在org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:465) 在 org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216) 在 org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:395) 在 org.eclipse.osgi.internal.loader。 SingleSourcePackage.loadClass(SingleSourcePackage.java:35) 在 org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:461) 在 org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:第421章.loadClass(ClassLoader.java:356) 在 org.eclipse.jpt.jpa.eclipselink.core.internal.context.persistence.EclipseLink2_0PersistenceXmlContextNodeFactory。buildPersistenceUnit(EclipseLink2_0PersistenceXmlContextNodeFactory.java:33) 在 org.eclipse.jpt.jpa.core.internal.jpa1.context.persistence.GenericPersistence.buildPersistenceUnit(GenericPersistence.java:179) 在 org.eclipse.jpt.jpa.core.internal。 jpa1.context.persistence.GenericPersistence.initializePersistenceUnits(GenericPersistence.java:137) at org.eclipse.jpt.jpa.core.internal.jpa1.context.persistence.GenericPersistence.(GenericPersistence.java:55) at org.eclipse.jpt .jpa.core.internal.context.persistence.AbstractPersistenceXmlContextNodeFactory.buildPersistence(AbstractPersistenceXmlContextNodeFactory.java:41) 在 org.eclipse.jpt.jpa.core.internal.jpa1.context.persistence.GenericPersistenceXml.buildPersistence(GenericPersistenceXml.java:163)在 org.eclipse.jpt.jpa.core.internal.jpa1.context.persistence。org.eclipse.jpt.jpa.core.internal.AbstractJpaFactory.buildPersistenceXml(AbstractJpaFactory.java:202) 上的 org.eclipse.jpt.jpa.core.internal.jpa1.context.GenericRootContextNode 上的 GenericPersistenceXml.(GenericPersistenceXml.java:68) .buildPersistenceXml(GenericRootContextNode.java:157) 在 org.eclipse.jpt.jpa.core.internal.jpa1.context.GenericRootContextNode.buildPersistenceXml(GenericRootContextNode.java:95) 在 org.eclipse.jpt.jpa.core.internal.jpa1 .context.GenericRootContextNode.(GenericRootContextNode.java:62) 在 org.eclipse.jpt.jpa.core.internal.AbstractJpaFactory.buildRootContextNode(AbstractJpaFactory.java:195) 在 org.eclipse.jpt.jpa.core.internal.AbstractJpaProject。 buildRootContextNode(AbstractJpaProject.java:276) 在 org.eclipse.jpt.jpa.core.internal.AbstractJpaProject.(AbstractJpaProject.java:251) 在 org.eclipse.jpt.jpa.eclipselink.core.internal.EclipseLinkJpaFactory.buildJpaProject(EclipseLinkJpaFactory.java:62) 的 org.eclipse.jpt.jpa.eclipselink.core.internal.EclipseLinkJpaProjectImpl.(EclipseLinkJpaProjectImpl.java:26) ) 在 org.eclipse.jpt.jpa.eclipselink.core.internal.EclipseLink2_0JpaFactory.buildJpaProject(EclipseLink2_0JpaFactory.java:1 ) 在 org.eclipse.jpt.jpa.core.internal.InternalJpaProjectManager.buildJpaProject(InternalJpaProjectManager.java:608) 在 org.eclipse.jpt.jpa.core.internal.InternalJpaProjectManager.buildJpaProject(InternalJpaProjectManager.java:616) 在 org. eclipse.jpt.jpa.core.internal.InternalJpaProjectManager.buildJpaProject(InternalJpaProjectManager.java:601) 在 org.eclipse.jpt.jpa.core.internal.InternalJpaProjectManager.checkForJpaFacetTransition_(InternalJpaProjectManager.java:760) 的 org.eclipse.jpt.jpa.core.internal.InternalJpaProjectManager.addJpaProject(InternalJpaProjectManager.java:582)在 org.eclipse.jpt.jpa.core.internal.InternalJpaProjectManager$FacetFileChangeEventHandlerCommand.execute(InternalJpaProjectManager.java:750) 在 org.eclipse.jpt.common.core.internal.utility.command.CommandJobCommandAdapter.execute(CommandJobCommandAdapter.java: 39) 在 org.eclipse.core.internal.jobs.Worker.run(Worker.java:53) 的 org.eclipse.jpt.common.core.internal.utility.command.JobCommandJob.run(JobCommandJob.java:42)引起:java.lang.ClassNotFoundException:org.eclipse.osgi.internal.loader 的 org.eclipse.persistence.jpa.jpql.AbstractJPQLQueryHelper。BundleLoader.findClassInternal(BundleLoader.java:501) 在 org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421) 在 org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java: 412) 在 org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:356) ... 43 更多

我找不到此错误和日志所指的内容。任何帮助都会很棒,因为我现在正在努力。

提前致谢。

4

2 回答 2

1

我遇到了同样的问题。

基于这个关于 Eclipse - NoClassDefFoundError with JPA 项目 的错误报告,我不得不卸载 Hibernate Tools 插件来修复错误。

看起来基本的 Eclipse 没有问题,但如果您安装了 JBoss Tools 插件,它们会提供不兼容的 JPA 类版本,这会导致问题。

于 2014-02-05T20:36:09.400 回答
0

我也面临同样的问题

错误是:

在“JPA Facet 文件更改事件处理程序”期间发生内部错误

解决:

我们需要卸载休眠工具。
我们的 Eclipse 没有任何问题,但是我们动态安装的工具有问题,所以最好删除该工具。

于 2018-02-16T10:01:22.647 回答