org.hibernate.AnnotationException未注释或在白名单

时间:2017-12-04 12:41:37

标签: corda

我已经厌倦了在架构中为主键声明添加@Id。构建并成功运行。但是它显示为类org.hibernate.AnnotationException没有注释或在白名单上,因此不能用于序列化序列化跟踪:cause(rx.exceptions.OnErrorNotImplementedException)throwable(rx.Notification)。我也添加了@corda序列化。请帮帮我。

1 个答案:

答案 0 :(得分:0)

问题如下:

  • 您的代码抛出了org.hibernate.AnnotationException
  • 该节点正在尝试将此异常通过RPC发送回客户端,或者作为流的一部分发送给另一个节点
  • 出于安全目的,只能将白名单类进行序列化并在流中或通过RPC发送
  • 该异常类未列入白名单,因此将引发序列化异常

一旦将异常类列入白名单,它将被序列化并正确返回,从而使您能够诊断出根本问题。

将课程添加到白名单

您可以通过以下方式将类添加到此白名单:

  • 向类添加@CordaSerializable注释

    @CordaSerializable
    class MyClass
    
  • 将其添加到序列化白名单中:

    class TemplateSerializationWhitelist : SerializationWhitelist {
        override val whitelist: List<Class<*>> = listOf(MyClass::class.java)
    }
    

然后必须将序列化白名单插件的标准类名添加到net.corda.core.serialization.SerializationWhitelist文件夹中名为src/main/resources/META-INF/services的文件中。