【问题标题】:sun.reflect.annotation.TypeNotPresentExceptionProxy exception after adding EntityListenerssun.reflect.annotation.TypeNotPresentExceptionProxy 添加EntityListeners后异常
【发布时间】:2012-09-06 13:33:45
【问题描述】:

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

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

【问题讨论】:

  • 如果引用了注释但jar不存在,也会发生这种情况

标签: jpa jpa-2.0 eclipselink


【解决方案1】:

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

这是一个简短的例子:

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

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

【讨论】:

  • 我遇到过这种情况,注解和类以循环方式相互引用。解决方案是删除注释,编译然后重新创建。当然,没有必要像这样解决循环依赖。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-03
  • 2018-09-28
  • 2012-12-20
  • 2019-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多