RESTEasy プロジェクトの JAXB 実装として EclipseLink の MOXy を使用しています。JSON のサポートという 1 つのことを除いて、すべてが正常に機能しています。RESTEasy の JettisonMappedContext を使用していますが、残念ながら、マーシャリング後の JSON には抽象スーパークラスに属するインスタンス変数フィールドしかありません。
@XmlRootElement
@XmlDiscriminatorNode("@type")
public abstract class Entity {
public Entity(){}
public Entity(String id){
this.id = id;
}
private String id;
@XmlElement
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
サブクラス:
@XmlRootElement
@XmlDiscriminatorValue("photo")
public class Photo extends Entity{
private String thumbnail;
public Photo(){}
public Photo(String id) {
super(id);
}
public void setThumbnail(String thumbnail) {
this.thumbnail = thumbnail;
}
@XmlElement(name="thumbnail")
public String getThumbnail() {
return thumbnail;
}
}
マーシャリング後の XML:
<object type="photo">
<id>photoId423423</id>
<thumbnail>http://dsadasadas.dsadas</thumbnail>
</object>
マーシャリング後の JSON:
"object":{"id":"photoId423423"}
これを達成する他の方法はありますか?
ありがとうございました。