当前位置: 首页 > 知识库问答 >
问题:

从GF 3.1.2迁移到Payara 4.1.1后出现Eclipselink异常

暨弘懿
2023-03-14

我正在将一个项目从GF 3.1.2(Eclipselink2.3.2)迁移到Payara 4.1.1.162(Eclipselink2.6.2)。

在部署war存档时,我遇到以下异常:

[2016-05-10T15:58:35.406+0200] [Payara 4.1] [SEVERE] [] [] [tid: _ThreadID=43 _ThreadName=admin-listener(1)] [timeMillis: 1462888715406] [levelValue: 1000] [[javax.persistence.PersistenceException: Exception [EclipseLink-28018] (Eclipse Persistence Services - 2.6.2.qualifier): org.eclipse.persistence.exceptions.EntityManagerSetupException

[2016-05-10T15:58:35.406+0200][Payara 4.1][严重][][TID:_ThreadId=43_ThreadName=Admin-Listener(1)][TimeMillis:1462888715406][LevelValue:1000][[pse.persistence.internal.jpa.metamodel.metamodelImpl.preinitialize(metamodelImpl.398)在org.eclipse.persistence.internal.jpa.metamodel.metamodelImpl.113)在

[2016-05-10T15:58:35.408+0200][Payara 4.1][严重][][javax.Enterprise.System.Core][TID:_Threadid=43_ThreadName=Admin-Listener(1)][TimeMillis:1462888715408][LevelValue:1000][[准备应用程序时出现异常]]

[2016-05-10T15:58:35.593+0200][Payara 4.1][信息][][org.glassfish.admingui][tid:_threadid=46_threadname=admin-listener(4)][timemillis:1462888715593][levelvalue:800][[发生异常:部署期间发生错误:准备应用程序时发生异常:异常[EclipseLink-28018](Eclipse Persistence Services-2.6.2.qualifier):org.Eclipse.Persistence.exceptions.EntityManagerSetupException异常说明:

在项目中,我们使用MappedSuperClasss的层次结构,如:

@MappedSuperclass
public abstract class EntityBase implements IEntity {
...
}

@MappedSuperclass
public abstract class StandardEntityJpaImpl extends EntityBase implements IStandardEntity {
...
}

@MappedSuperclass
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class ArtifactBase extends StandardEntityJpaImpl {
...
}

@Entity
@Table(name="artifact")
public class Artifact extends ArtifactBase implements Comparable<Artifact> {
...
}

@Entity
@Table(name="artifact2")
public class Artifact2 extends ArtifactBase implements Comparable<Artifact>    {
...
}

@Entity
@Table(name="artifact3")
public class Artifact3 extends ArtifactBase implements Comparable<Artifact> {
...
}

@Entity
@Table(name="reference")
public class Reference extends StandardEntityJpaImpl implements Comparable<Artifact> {
...
}

层次结构如下:

   [Persistence Model][1] http://i.stack.imgur.com/2uynO.png

我已经将Payara的日志设置为FINEST,但不幸的是,我没有得到任何进一步的信息。我还尝试在web-inf/lib文件夹中部署Eclipselink jar,但这并没有改变行为。有没有人知道为什么有ClassCastException?

谢谢你的帮助,Bernd


共有1个答案

廉志强
2023-03-14

我访问了eclipselink源代码,它似乎需要一个映射的超类,但由于某种原因(源代码中的相关代码行)找到了一个正常的实体类。

正常实体类似乎是找到的,因为没有提供映射超类的描述符(源代码中的相关代码行

然而,这似乎是eclipselink中的一个bug,因为它将映射的超类描述符添加到一个具有完全限定类名作为键的映射中,但随后它无法在类名下的同一映射中找到它,类名是从映射内部的值检索的。我看不出为什么会这样。

 类似资料:
  • 在我的STS应用程序中实现Apache Ivy后收到以下控制台错误。 我添加了以下jar文件:

  • 我们正在从WAS 8.5(使用OpenJPA2.0,Hibernate4.2.x[last JPA2.0version])迁移到WAS 9.0(使用eclipseLink[last JPA2.1version])),除了一件事之外,迁移是成功的。 为了在服务器上多次部署同一个应用程序并针对不同的数据库运行,我们在中定义了一个变量引用: 对于WAS8.5/openJPA来说,这一切都很好。但是在使用

  • 我正在将一个相当大的monolith spring boot应用程序从Java 8迁移到Java 11。在修复了删除的JEE模块后,由于新引入的模块系统概念的强封装,我遇到了几个反射错误。 启动应用程序可以使用Java11,但是,通过Maven执行干净的安装不起作用。由于反射和强封装,由于无法访问对象异常导致了几个测试失败。 我已经尝试了那篇文章中建议的解决方案如何在Java9上解决不可用对象异常

  • 当我尝试启动我的应用程序时,我的 MainActivity 在 oncreate() 方法中的“setContentView(R.layout.activity_main);” 中抛出此错误: 这个错误出现在迁移到androidx之后,经过进一步检查,我注意到Bottomnavigationview类中的导入语句已经过时(没有androidx格式,而是旧格式)。Bottomnavigationvi

  • 我正在使用Android Studio 3.2 Canary 14,并试图迁移现有项目以使用AndroidX。从https://developer.android.com/topic/libraries/support-library/androidx-rn听起来,我必须设置(这是在选择“重构到AndroidX…”选项时自动完成的)。我还将目标API级别更新为28。还有人看到这个问题吗? 未能转换

  • 从2.1.0迁移的Springboot版本2.2.1