jpa - 添加 EntityListeners 后 sun.reflect.annotation.TypeNotPresentExceptionProxy 异常

标签 jpa jpa-2.0 eclipselink

当使用 @EntityListeners(value = {MyEventListener.class}) 将 EntityListeners 添加到应用程序时,得到以下崩溃。它看起来是一个反射问题。应用程序具有为同一实体定义的自定义注释。请注意,此崩溃仅在添加 EntityListeners 后发生。如果自定义注释被注释,应用程序仍将崩溃。奇怪的是,相同的代码在通过 Netbeans 调试器运行时也能正常工作。 getAnnotation() call 将读取为实体定义的所有注释。当我在调试器之外启动应用程序时,我就崩溃了。我一直无法找到类加载器找不到 MyEventListener.class 的原因。

at sun.reflect.annotation.AnnotationParser.parseClassArray(Unknown Source)
at sun.reflect.annotation.AnnotationParser.parseArray(Unknown Source)
at sun.reflect.annotation.AnnotationParser.parseMemberValue(Unknown Source)
at sun.reflect.annotation.AnnotationParser.parseAnnotation(Unknown Source)
at sun.reflect.annotation.AnnotationParser.parseAnnotations2(Unknown Source)
at sun.reflect.annotation.AnnotationParser.parseAnnotations(Unknown Source)
at java.lang.Class.initAnnotationsIfNecessary(Unknown Source)
at java.lang.Class.getAnnotation(Unknown Source)
at com.feedoffice.FOEDataCache.initializeInternalListeners(FOEDataCache.java:34)
at com.DataCache.<init>(DataCache.java:20)
at com.feedoffice.FOEDataCache.<init>(FOEDataCache.java:16)
at com.feedoffice.ClientDataCache.<init>(ClientDataCache.java:163)
at com.ClientDataCache.<clinit>(ClientDataCache.java:171)
at com.feedoffice.forms.FOENumericTextFieldFactory.<init>(FOENumericTextFieldFactory.java:14)
at com.feedoffice.forms.FOENumericTextFieldFactory.getInstance(FOENumericTextFieldFactory.java:24)
at com.feedoffice.FOEApplet.displayMenu(FOEApplet.java:282)
at com.feedoffice.FOEApplet.loginWindowClosed(FOEApplet.java:215)
at com.feedoffice.forms.AppLogin.submitButtonClicked(AppLogin.java:49)
at com.feedoffice.forms.AppLogin.performSubmitAction(AppLogin.java:106)

有没有人看到这个并知道如何解决它?

最佳答案

问题很可能如下:有一些注释的值使用了一个不在类路径中的类。

这是一个简短的例子:

@MyAnnotation (value = MyClass.class)
public class TestClass

您必须确保“Myclass”在您的类路径中可用。 (例如通过将其打包到您的应用程序中)

关于jpa - 添加 EntityListeners 后 sun.reflect.annotation.TypeNotPresentExceptionProxy 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12301302/

相关文章:

java - 寻找带有 sqlite3 的 java persistence api 的 Maven 示例项目

java - 使用 Hibernate 的 Spring Boot 应用程序如何与多个结构相同的表进行交互?

database - 使用多个数据库和 Liquibase 时的最佳 Hibernate 主键生成类型

java - EclipseLink:如何为 eclipselink 2.7.0 设置 SLF4J 记录器

java - EclipseLink ValidationException - 非实体 [class long] 作为关系属性 [fieldproviderId] 中的目标实体

Java bean 持久化模式

java - Hibernate 使用 @MappedSuperClass 祖先映射泛型类

mysql - JPA 2.1/EclipseLink 2.5.2 中查询集合参数的最大大小

java - JPA:关系的目标有可能是非实体吗?

java - JPA - 检索所有实体类