Я пытаюсь создать экземпляр класса с аннотациями 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.
Как я могу устранить эту проблему?