クライアントと統計データを共有するための汎用 (POJO-) コンテナーがあります。
@XmlRootElement
public class StatsSeries implements Serializable {
private TreeMap<Date, Number> timeSeries;
/* accessor methods */
}
データに応じて、サーバーはLong
、Integer
またはそのDouble
中に格納します。これが、私が抽象を使用している理由ですjava.lang.Number
。
マーシャリングは正常に機能し、具体的なクラスを示すヒントがデータに含まれています。
"timeSeries": {
"entry": [
{
"key": "2012-08-20T00:00:00Z",
"value": {
"$": "24",
"@type": "xs:long"
}
},
....
]
}
または XML 表現で:
<timeSeries>
<entry>
<key>2012-08-20T00:00:00Z</key>
<value xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:long">24</value>
</entry>
...
</timeSeries>
これを非整列化しようとすると、javax.xml.bind.UnmarshalException: Unable to create an instance of java.lang.Number
.
この質問を見ましたが、役に立ちません。どうすれば注釈を付けることができjava.lang.Number
ますか? 他の提案はありますか?
更新: JAXB-890を見て、JDK 1.7 または使用のいずれかで修正する必要があることを理解していますcom.sun.xml.bind:jaxb-impl:2.2.6
- どちらも私にとってはうまくいきません。