@psvm

SOAP web service присылает неожиданный элемент. Как правильно обработать ответ от сервиса в моем случае?

Здравствуйте!
Суть вот в чем: есть некий web service, который я вызываю и получаю ответ. Но в ответе присутствует неожиданный namespace
Unmarshalling Error: unexpected element (uri:"urn:otrs-com:soap:functions", local:"SessionID"). Expected elements are <{}Error>,<{}SessionID>

В исходниках, который сгенерил cxf-codegen-plugin этот namespace отсутствует. Если же его прописать вручную в XmlRootElement сгенеренного класса, то ответ благополучно парсится. При перегенерации классов все изменения я соответственно потеряю.
Какой best practise существует в таких ситуациях, как лучше поступить?
Спасибо.

Тот самый сгенерированный класс ответа
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
    "sessionID",
    "error"
})
@XmlRootElement(name = "SessionCreateResponse")
public class SessionCreateResponse {

    @XmlElement(name = "SessionID", required = true)
    protected String sessionID;
    @XmlElement(name = "Error")
    protected OTRSError error;

    /**
     * Gets the value of the sessionID property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getSessionID() {
        return sessionID;
    }

    /**
     * Sets the value of the sessionID property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setSessionID(String value) {
        this.sessionID = value;
    }

    /**
     * Gets the value of the error property.
     * 
     * @return
     *     possible object is
     *     {@link OTRSError }
     *     
     */
    public OTRSError getError() {
        return error;
    }

    /**
     * Sets the value of the error property.
     * 
     * @param value
     *     allowed object is
     *     {@link OTRSError }
     *     
     */
    public void setError(OTRSError value) {
        this.error = value;
    }

}

Содержимое package-info
@javax.xml.bind.annotation.XmlSchema(namespace = "http://www.otrs.org/TicketConnector/")
package org.otrs.ticketconnector;

  • Вопрос задан
  • 94 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы