Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
EclipseLink添加转换器会间歇性导致ValidationException_Eclipse_Jpa_Eclipselink - Fatal编程技术网

EclipseLink添加转换器会间歇性导致ValidationException

EclipseLink添加转换器会间歇性导致ValidationException,eclipse,jpa,eclipselink,Eclipse,Jpa,Eclipselink,我第一次使用EclipseLink构建一个新的应用程序 一切都很顺利,直到我添加了一个使用JSR310 Instant作为时间戳列的实体 因此,我创建了一个转换器类,并将其映射到相关字段,如下所示: @Convert(converter = JSR310InstantTypeConverter.class) private Instant pwdChangeCodeExpiresOn = null; 但是,自从我添加该转换器后,应用程序已开始引发以下异常: SEVERE: Servlet.

我第一次使用EclipseLink构建一个新的应用程序

一切都很顺利,直到我添加了一个使用JSR310 Instant作为时间戳列的实体

因此,我创建了一个转换器类,并将其映射到相关字段,如下所示:

@Convert(converter = JSR310InstantTypeConverter.class)
private Instant   pwdChangeCodeExpiresOn = null;
但是,自从我添加该转换器后,应用程序已开始引发以下异常:

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)
这将在代码更改后开始(当Eclipse重新启动服务器时)。我必须手动停止和启动(和/或重新启动)服务器几次,直到它最终重新开始工作。然后,它将正常工作,直到一两次代码更改之后,它将再次开始抛出异常


这是一个巨大的痛苦。有人知道原因以及如何修复吗?

好的,找到了解决方案。将转换器类添加到persistence.xml文件(如错误消息所示)似乎解决了问题

<persistence-unit name="example" transaction-type="RESOURCE_LOCAL">
  ....
  <class>com.example.utils.JSR310InstantTypeConverter</class>
  ...
</persistence-unit>

....
com.example.utils.JSR310InstantTypeConverter
...

我应该早点试试。事实上,有些时候没有这个功能也能正常工作,这让我觉得没有什么区别。

似乎我们在阅读错误消息之前先去谷歌看看。。。我也这么做了。在我们的辩护中,异常呕吐时间很长。还要确保使用了
@Converter