Я сгенерировал набор классов с Apache CXF на основе большого wsdl, который мы получили от нашего клиента.Он использует anyType, чтобы он содержал целую кучу разных типов.Это wsdl
<complexType name="PayloadBase">
<complexContent>
<restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
</restriction>
</complexContent>
</complexType>
Это переводит в следующий код Java
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "PayloadBase")
public class PayloadBase {
// empty as you can see
}
Оказывается, что любой класс, который хочет использовать дочерний элемент этого класса, не знает, как работать сЭто.Скажем, например, подкласс PayloadBase добавляется к объекту-обертке, который также содержит метку времени, генерируется следующий XML
<bericht timestamp="2012-02-14T16:03:34.331+01:00"><payload/></bericht>
Это результат отправки следующего класса через код веб-сервиса
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "BerichtDescription", propOrder = {
"payload"
})
public class BerichtDescription {
@XmlElement(required = true)
protected PayloadBase payload;
@XmlAttribute(name = "timestamp", required = true)
@XmlSchemaType(name = "dateTime")
protected XMLGregorianCalendar timestamp;
Любой используемый экземпляр PayloadBase никогда не будет отображаться в результирующем xml.С помощью отладчика я проверил, что экземпляр PayloadBase действительно заполнен контентом.Как мне заставить java webservices работать с этой настройкой?