Ich erhalte eine ClassCastException, wenn Eclipselink DescriptorCustomizer für Verlauf verwendet.ClassCastException mit Eclipselink DescriptorCustomizer
Meine Customizer-Klasse wie folgt aussieht:
public class MyCustomizer implements DescriptorCustomizer {
@Override
public void customize(ClassDescriptor classDescriptor) thorws Exception {
// Setting HistoryPolicy here.
}
}
Das Unternehmen mit Anmerkungen versehen ist:
@Customizer(full.packagename.MyCustomizer.class)
im EJB-Modul in einem Maven-Projekt Dies erfolgt, die wie strukturiert:
- root
- Ohr
- ejb
- Krieg
Die Eclipslink Abhängigkeit ist:
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>eclipselink</artifactId>
<version>2.6.3</version>
<scope>provided</scope>
</dependency>
Der Code auf WebSphere Freiheit 17.0.0.2 läuft, auf dem es keine anderen Anwendungen bereitgestellt. Das Eclipselink-Jar befindet sich im globalen Lib-Verzeichnis des Servers.
Wenn die Eclipse zunächst versucht, die Einheit ich die folgende Ausnahme zuzugreifen:
MyCustomizer cannot be cast to org.eclipse.persistence.config.DescriptorCustomizer
ich die Eclipse im Antrag des Paket enthalten versucht, aber das Ergebnis ist das gleiche. Was kann das richtige Casting verhindern und wie kann ich es beheben?
EDIT # 1
Ich habe die Eclipse Abhängigkeit:
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>org.eclipse.persistence.core</artifactId>
<version>2.6.3</version>
<scope>provided</scope>
</dependency>
Da es nicht das javax.persistence Paket so enthält es nicht mit dem Websphere internen stören können.
Wenn ich manuelle Anwendung in der Anwendung zu Testzwecken mache, dann gibt es keine Ausnahme. Die ClassCastException wird ausgelöst, wenn getCriteriaBuilder() im EntityManager aufgerufen wird.