ネストされた名前空間での予期せぬ要素に当たるなぜ私のSOAPサービスのGET:私のWebサービスは、このXMLを受信非整列化は、私が見つけることがハイとローの検索した
javax.xml.bind.UnmarshalException: unexpected element (uri:"http://xsd.banverket.se/T/Opera/Tagrapportering2.xsd", local:"Tagrapportering"). Expected elements are <{urn:BVTAF}Tagrapportering>,<{urn:BVTAF}MessageHeader>
:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<MessageArray xmlns="urn:BVTAFMessageInbox">
<BVTagrapportering xmlns="urn:BVTAF">
<MessageHeader><MessageStatus>1</MessageStatus><MessageReference><MessageType MessageTypeCode="0"/><MessageNumber>5572098</MessageNumber><MessageDateTime>2017-10-31T19:56:22.4312743+01:00</MessageDateTime></MessageReference><Sender>10001</Sender><Recipient>10040</Recipient></MessageHeader>
<Tagrapportering xmlns="http://xsd.banverket.se/T/Opera/Tagrapportering2.xsd">
<Tag tagnr="xxxxx" avgangsdatum="2017-10-31" tagslag="RST" dest="M" trafikutovare="Trans...(I intentionally clipped the xml here)
Unmarshallerの頑固urn:BVTAF名前空間にTagrapporteringがありますが、その名前空間にはありません。これは私のBVTagrapporteringクラスの始まりです:
/**
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* <complexType>
* <complexContent>
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* <sequence>
* <element name="MessageHeader" type="{urn:BVTAF}MessageHeader"/>
* <element name="Tagrapportering" type="{http://xsd.banverket.se/T/Opera/Tagrapportering2.xsd}Tagrapportering"/>
* </sequence>
* </restriction>
* </complexContent>
* </complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "",
propOrder = {
"messageHeader",
"tagrapportering",
}
)
@XmlRootElement(name = "BVTagrapportering")
public class BVTagrapportering {
@XmlElement(name = "MessageHeader", namespace = "urn:BVTAF", required = true)
protected MessageHeader messageHeader;
@XmlElement(name = "Tagrapportering", namespace = "http://xsd.banverket.se/T/Opera/Tagrapportering2.xsd", required = true)
protected Tagrapportering tagrapportering;
私はこのpackage.info.javaを持って私のパッケージで
:
@javax.xml.bind.annotation.XmlSchema(namespace = "urn:BVTAF",
elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED
)
package bvtaf;
事が IF私はのxmlns、着信SOAPメッセージからTagrapportering要素内の属性非整列化を削除することです魅力のように動作しますが、私はこのアプローチが私のために可能な方法ではないので、着信SOAPメッセージを制御しません...
私はApache CXF 3.2.1 Webサービスコードジェネレータをwsdlからjavaに使用しています私のクラスを生成するためにTomcat 8.5で実行します。
誰でも私を助けてくれますか?これは私を狂ったものにしています...