Как (де) сериализовать объект с помощью JAXB / SCALA, когда необходим @XmlJavaTypeAdapter? - PullRequest
3 голосов
/ 29 августа 2011

Мне нужна помощь с использованием JAXB для (де-) сериализации многоугольника библиотеки JTS :

При реализации

class PolygonAdapter extends XmlAdapter[String,Polygon] {...}

и аннотировании поля многоугольникакак:

@XmlRootElement(name = "Room")
case class Room(@XmlAttribute name: String, description: String,
                @XmlJavaTypeAdapter(classOf[PolygonAdapter]) polygon: Polygon) {...}

Я получаю деталь classOf[PolygonAdapter]) с пометкой, сообщая о следующих ошибках:

Multiple markers at this line
- type mismatch; found : java.lang.Class[room.PolygonAdapter](classOf[room.PolygonAdapter])     required: java.lang.Class[_ <: 
 javax.xml.bind.annotation.adapters.XmlAdapter]
- annotation argument needs to be a constant; found: classOf[PolygonAdapter]
- annotation argument needs to be a constant; found: classOf{<null>}[PolygonAdapter]{<null>}
- type mismatch; found : java.lang.Class[room.PolygonAdapter](classOf[room.PolygonAdapter])     required: java.lang.Class[_ <: 
 javax.xml.bind.annotation.adapters.XmlAdapter]
- annotation argument needs to be a constant; found: classOf{<null>}[PolygonAdapter]{<null>}

Мои вопросы:

  • Как мне решить эту проблемупроблема?
  • Есть ли лучший способ (де) сериализации сложной иерархии объектов в Scala, чем использование JAXB?

Спасибо.

1 Ответ

0 голосов
/ 02 декабря 2011

Я не уверен, как решить вашу первую проблему.Может ли быть проблема с аннотацией кейс-класса?Можно попробовать использовать не-case класс.Но опять же очень не уверен в этом.Может ли быть связано с этим вопросом SO?

scala: аннотирующие методы доступа

Однако вы рассматривали встроенные в Scala XML-функции?*http://www.ibm.com/developerworks/library/x-scalaxml/

http://www.scala -lang.org / node / 131

http://www.codecommit.com/blog/scala/working-with-scalas-xml-support

edit: может стоить взятьпосмотрите: http://scalaxb.org/, если вы хотите избежать использования встроенных функций Scala ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...