Sto costruendo una nuova applicazione utilizzando EclipseLink per la prima volta.EclipseLink aggiungendo un convertitore causa ValidationException a intermittenza
Tutto andava bene fino a quando non ho aggiunto un'entità che utilizza JSR310 Instant per una colonna timestamp.
Così ho creato una classe convertitore e mappato al campo associato in questo modo:
@Convert(converter = JSR310InstantTypeConverter.class)
private Instant pwdChangeCodeExpiresOn = null;
Tuttavia, poiché ho aggiunto che convertitore l'applicazione ha iniziato a gettare la seguente eccezione:
SEVERE: Servlet.service() for servlet [APIJerseyServlet] in context with path [/Sclera] threw exception [org.glassfish.jersey.server.ContainerException: java.lang.ExceptionInInitializerError] with root cause
Local Exception Stack:
Exception [EclipseLink-7351] (Eclipse Persistence Services - 2.5.1.v20130918-f2b9fc5): org.eclipse.persistence.exceptions.ValidationException
Exception Description: The converter class [com.sclera.utils.JSR310InstantTypeConverter] specified on the mapping attribute [pwdChangeCodeExpiresOn] from the class [com.sclera.entity.Admin] was not found. Please ensure the converter class name is correct and exists with the persistence unit definition.
at org.eclipse.persistence.exceptions.ValidationException.converterClassNotFound(ValidationException.java:2317)
at org.eclipse.persistence.internal.jpa.metadata.converters.ConvertMetadata.process(ConvertMetadata.java:248)
Questo inizierà dopo un cambio di codice (quando Eclipse riavvia il server). Devo fermarmi e avviare (e/o riavviare) il server manualmente alcune volte fino a quando finalmente ricomincerà a funzionare. Quindi funzionerà fino a quando un codice cambia o due più tardi quando inizierà a generare nuovamente l'eccezione.
Questo è un dolore enorme. Qualcuno conosce la causa e come risolverlo?
Sembra che andiamo a Google prima di leggere i messaggi di errore ... Ho fatto lo stesso. A nostra difesa, il vomito eccezionale è molto lungo. – Fuhrmanator