私は3つのクラスを持っています
@XmlRootElement
public class GeofenceParameter{
private GeofenceCenterAddress geofenceCenterAddress;
private GeofenceCenterCoordinates geofenceCenterCoordinates;
}
public class GeofenceCenterAddress extends GeofenceParameter{
}
public class GeofenceCenterCoordinate extends GeofenceParameter{
}
GeofenceCenterAddress と GeofenceCentereCoordinate でジオフェンス パラメータをマーシャリングおよびアンマーシャリングするために、2 つの異なる XmlAdapter 拡張クラスを作成しました。
Class forGeofenceCenterCoordinate extends XmlAdapter<ValueType,BoundType>{
}
Class forGeofenceCenterAddress extends XmlAdapter<ValueType,BoundType>{
}
Soap リクエストの送信に応じて、GeofenceParamter から GeofenceCenterAddress または GeofenceCenterCoordinate クラスのいずれかに関連するインスタンスを取得します。
このために、package-info.javaファイルで注釈を使用しました@XmlJavaTypeAdapters{(@XmlJavaTypeAdapter(type=forGeofenceCenterCoordinate)),@XmlJavaTypeAdapter(type=forGeofenceCenterAddress)}
しかし、Web サービスでは、注釈で最初に指定したクラスのインスタンス、つまり@XmlJavaTypeAdapter(type=forGeofenceCenterCoordinate) class not of @XmlJavaTypeAdapter(type=forGeofenceCenterAddress)
GeofenceParamter からのインスタンスが返されます。
JAXB継承のマーシャリングとアンマーシャリングでも2番目のクラスのインスタンスを取得するのを手伝ってください。
前もって感謝します