Verursacht durch: javax.xml.binden.JAXBException: Klasse, noch einer seiner super-Klasse bekannt ist in diesem Zusammenhang
Habe ich die folgenden automatisch generierten Klassen aus dem xsd.
<xs:element name="Add" type="tns:AddType"/>
<xs:complexType name="AddCatalogDataItem">
<xs:complexContent>
<xs:restriction base="tns:AddType">
<xs:sequence>
<xs:element ref="tns:Code"/>
<xs:element ref="tns:Value" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="LoadDataRequest">
<xs:complexContent>
<xs:restriction base="AppDataType">
<xs:sequence>
<xs:element ref="tns:Code"/>
<xs:element ref="tns:RegCode" minOccurs="0"/>
<xs:element ref="tns:Add" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
Beim erstellen einer Anfrage beim marshalling der Bühne bin ich immer diese Fehlermeldung:
Verursacht durch: javax.xml.binden.JAXBException: class com.ats.vis.services.Konzentrator.AddCatalogDataItem noch seine super-Klasse bekannt ist zu diesem Kontext.
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "LoadDataRequest")
public class LoadDataRequest
extends AppDataType {}
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "AddType", propOrder = {
"any"
})
@XmlSeeAlso({
AddCatalogDataItem.class,
AddCatalogDataResult.class
})
public class AddType {}
Hier ist das Stück code der Schöpfung.
LoadDataRequest appdt = new LoadDataRequest();
AddCatalogDataItem add = new AddCatalogDataItem();
add.getAny().add(new JAXBElement<String>(new QName(NS_CONC, "Code"),String.class, updateOper.code));
аppdt.getAny().add(add);
Und code marshaller.
private SOAPMessage createSOAPRequest(LoadDataRequest request) throws SOAPException, JAXBException {
SOAPMessage message = MessageFactory.newInstance().createMessage();
Marshaller marshaller = JAXBContext.newInstance(request.getClass()).createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
JAXBElement<LoadDataRequest> jaxbElement = new JAXBElement<>(new QName(NS_CONC, "LoadDataRequest"), LoadDataRequest.class, request);
marshaller.marshal(jaxbElement, message.getSOAPBody());
return message;
}
Ich bin running out of Ideen, was ist falsch an diesem code. Bitte, helfen.
Warum sind Sie mit
Noch kein Glück
Hinzufügen
Ich habe aktualisiert die Beschreibung (xsd-Teil). Immer noch kein Glück. @ XmlRootElement nicht helfen.
JAXBElement<LoadDataRequest>
? versuche zu nennen, marshaller mit request
Objekt.Noch kein Glück
Hinzufügen
@XmlRootElement
auf Ihre Klassen. Sollte funktioniert gut auf diese Weise. Sorry das ich nicht sehen vor.Ich habe aktualisiert die Beschreibung (xsd-Teil). Immer noch kein Glück. @ XmlRootElement nicht helfen.
InformationsquelleAutor Nem | 2015-11-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe das Problem gelöst, durch die Schaffung von jaxb Zusammenhang mit der folgenden Methode:
InformationsquelleAutor Nem