Как решить проблему загрузки классов BIRT и JDO? - PullRequest
2 голосов
/ 18 марта 2012

Я пытаюсь создать экземпляр класса с аннотациями JDO и Datanucleus в методе доступа к данным, который вызывается из отчета BIRT через пользовательский драйвер ODA.

Двигатель BIRT -> Драйвер ODA -> Класс доступа к данным -> новый JDOAnnotatedClass ()

Но следующее считывание ClassCastException генерируется средством чтения аннотаций DataNucleus, когда вызывается конструктор аннотированного класса JDO.

Caused by: java.lang.ClassCastException: javax.jdo.annotations.IdentityType cannot be cast to javax.jdo.annotations.IdentityType
   at org.datanucleus.api.jdo.metadata.JDOAnnotationReader.processClassAnnotations(JDOAnnotationReader.java:171)
   at org.datanucleus.metadata.annotations.AbstractAnnotationReader.getMetaDataForClass(AbstractAnnotationReader.java:125)
   at org.datanucleus.metadata.annotations.AnnotationManagerImpl.getMetaDataForClass(AnnotationManagerImpl.java:171)
   at org.datanucleus.metadata.MetaDataManager.loadAnnotationsForClass(MetaDataManager.java:2459)
   at org.datanucleus.metadata.MetaDataManager.addAnnotationsDataToClass(MetaDataManager.java:1729)
   at org.datanucleus.metadata.ClassMetaData.populate(ClassMetaData.java:173)
   at org.datanucleus.metadata.MetaDataManager$1.run(MetaDataManager.java:2508)
... 152 more

Сообщение об исключении выглядит как типичная проблема с загрузкой классов. По-видимому, класс javax.jdo.annotations.IdentityType загружается дважды с различными загрузчиками классов, что вызывает исключение ClassCastException.

Как я могу устранить эту проблему?

...