Java 分析Jackson/Jerkson(Scala)中的子类时未找到合适的构造函数?

Java 分析Jackson/Jerkson(Scala)中的子类时未找到合适的构造函数?,java,scala,jackson,Java,Scala,Jackson,我试图解析一个类,但由于某种原因,Jackson(实际上是Scala中的Jerkson接口)正在进行转储。我猜这可能与BoardOpen是MessageEvent类的一个子类有关: class BoardOpen( override val channel: String ) extends MessageEvent(channel) 及 完整错误: The error com.codahale.jerkson.ParsingException: No suitable constru

我试图解析一个类,但由于某种原因,Jackson(实际上是Scala中的Jerkson接口)正在进行转储。我猜这可能与
BoardOpen
MessageEvent
类的一个子类有关:

class BoardOpen(

  override val channel: String

) extends MessageEvent(channel)

完整错误:

The error com.codahale.jerkson.ParsingException: No suitable constructor found
for type [simple type, class engine.event.BoardOpen]: can not instantiate from J
SON object (need to add/enable type information?)
 at [Source: java.io.StringReader@4004c5b3; line: 1, column: 2]
        at com.codahale.jerkson.ParsingException$.apply(ParsingException.scala:17)
        at com.codahale.jerkson.Parser$class.parse(Parser.scala:86)
        at com.codahale.jerkson.Json$.parse(Json.scala:6)
        at com.codahale.jerkson.Parser$class.parse(Parser.scala:14)
        at com.codahale.jerkson.Json$.parse(Json.scala:6)
        at controllers.socket.MessageParser$.matchMsg(MessageParser.scala:59)
        at controllers.socket.MessageParser$.parseRawMessage(MessageParser.scala:90)
        at controllers.socket.MessageParser$.readStringMsg(MessageParser.scala:42)
下面是我分析数据时发生的事情:

msgCase match {
       case "BoardOpen"            => parse[BoardOpen](msgData)
JSON看起来像:

{"channel":"/board"}
你知道为什么它会失败吗?谢谢

更新:

因为只有
channel
属性需要担心,所以我想如果我将解析更改为
parse[MessageEvent](msgData)
,并且奇怪的是,它吐出了相同的错误,我会看到会发生什么:

The error com.codahale.jerkson.ParsingException: No suitable constructor found
for type [simple type, class com.alloyengine.powder.MessageEvent]: can not insta
ntiate from JSON object (need to add/enable type information?)
 at [Source: java.io.StringReader@34fd2520; line: 1, column: 2]

您是否尝试过将MessageEvent作为特性而不是类进行比较?通道参数不会被标记为“覆盖”。实际上,是的。我所做的是将每个MessageEvent子类转换为一个case类,并将MessageEvent作为一个特性。它解决了问题,但没有确切告诉我原因。我知道这与引入的案例类有关。。。
The error com.codahale.jerkson.ParsingException: No suitable constructor found
for type [simple type, class com.alloyengine.powder.MessageEvent]: can not insta
ntiate from JSON object (need to add/enable type information?)
 at [Source: java.io.StringReader@34fd2520; line: 1, column: 2]