Ich bin derzeit konfrontiert mit einem WSDL-Fehler zwischen Entität und WSDL-Definition. Es scheint eine Liste von komplexen Typen zu ignorieren. Ich verwende Axis 2, um die WSDL aus Entitäten zu generieren, die aus einer XSD-Datei generiert werden. HierAxis Java zu wsdl und complexType Liste
ist der Teil der XSD-Datei:
<xs:element name="Funds">
<xs:complexType>
<xs:sequence>
<xs:element name="Fund" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="code" />
<xs:element type="xs:string" name="Status" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
Die folgenden Einheiten erzeugt:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"fund"
})
public static class Funds {
@XmlElement(name = "Fund")
@XmlAnyElement(lax=true)
protected List<Request.Funds.Fund> fund;
public List<Request.Funds.Fund> getFund() {
if (fund == null) {
fund = new ArrayList<Request.Funds.Fund>();
}
return this.fund;
}
public void setFund(List<Request.Funds.Fund> fund) {
this.fund = fund;
}
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"code",
"status"
})
public static class Fund {
@XmlElement(name = "CODE", required = true)
protected String code;
@XmlElement(name = "Status", required = true)
protected String status;
public String getCODE() {
return code;
}
public void setCODE(String value) {
this.code = value;
}
public String getStatus() {
return status;
}
public void setStatus(String value) {
this.status = value;
}
}
}
Dieser Code generierten gibt die folgende WSDL:
<xs:complexType name="Request_Funds">
<xs:sequence>
<xs:element minOccurs="0" name="fund" nillable="true" type="xs:anyType"/>
</xs:sequence>
</xs:complexType>
Die Liste ist als anyType getippt, so dass wenn es unmarshalled ist, bekomme ich den folgenden Fehler:
java.lang.ClassCastException: org.apache.axiom.om.impl.llom.OMElementImpl cannot be cast to com.legalsuite.services.start.importxml.Request$Funds$Fund
Was kann ich tun, um dieses Verhalten zu vermeiden?
ich versucht, und ich habe folgende Fehlermeldung: „Die Anmerkung @XmlElement für diesen Standort nicht zulässig ist“ –
Did Sie generieren Java-Klassen von XSD? –
Ja, ich habe sie von der XSD über –