【トラブル】【Java】【XML】 JAXB に関わるトラブルシューティング

■ エラー「Class has two properties of the same name」が表示される

 * JAXBでXMLファイルからオブジェクト変換時に、以下のエラーが表示

エラー内容

com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException: 1 counts of IllegalAnnotationExceptions
Class has two properties of the same name "xxxx"

対応策

対象プロパティに
@XmlAccessorType(XmlAccessType.FIELD)
を付加する

参考文献

http://stackoverflow.com/questions/6768544/jaxb-class-has-two-properties-of-the-same-name

■ 空のXMLタグが表示される

 * JAXBでXMLファイルからオブジェクト変換時に、データを入れているはずなのに
   空のタグのみ(<Xxxx />)が表示される

対応策

該当のプロパティ・クラスに
@XmlElement
を付加する

■ エラー「Class Xxxx nor any of its super class is known to this context」が表示される

 * JAXBでXMLファイルからオブジェクト変換時に、以下のエラーが表示

エラー内容

com.sun.istack.SAXException2: class xxx.Xxxx nor any of its super class is known to this context.

対応策

対象プロパティに
@XmlSeeAlso({Xxxx.class})
を付加する

# 試していないが別解として対象クラスをジェネリック「public class Xxxx<T extends Yyyy>」にする手もあるらしい