2017-11-28 16 views
0

ネストされた名前空間での予期せぬ要素に当たるなぜ私の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> 
* &lt;complexType> 
* &lt;complexContent> 
*  &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> 
    *  &lt;sequence> 
    *   &lt;element name="MessageHeader" type="{urn:BVTAF}MessageHeader"/> 
    *   &lt;element name="Tagrapportering" type="{http://xsd.banverket.se/T/Opera/Tagrapportering2.xsd}Tagrapportering"/> 
    *  &lt;/sequence> 
    *  &lt;/restriction> 
    * &lt;/complexContent> 
    * &lt;/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で実行します。

誰でも私を助けてくれますか?これは私を狂ったものにしています...

答えて

0

私の悪いですが、私のコンパイラは静かに私の変更をコンパイルして公開することを止めました。(直前のjavaの@XmlElementsに名前空間の定義を追加する直前です私のコンパイラが動作を停止したために私は決して気付かなかったが、私の問題は明らかに解決された)。

私のコンパイラが停止した理由は、私のMac OSを少し前にアップグレードしたためである。 Eclipse環境(After OSX upgrade, eclipse is missing applescriptengine.jar)。私はEclipseがかなり微妙だったので私の環境が壊れていることに気付かず、私がやっていたことをやり続けました。

私は質問に時間を費やしていた可能性がある誰もが謝罪します。誰も明らかな理由で答えなかったのですが。

関連する問題