Преобразовать XML-ответ Soap в объектную Java с помощью JAXB - PullRequest
0 голосов
/ 31 октября 2018

У меня есть ответный XML, который мне нужно добавить в Java-объект, чтобы использовать его, однако это нулевое значение, когда я пытаюсь получить к нему доступ. Я пытался разобраться с этим, но безуспешно

Получено тело XML.

  <ns1:buscaCadastroImobiliarioGeralResponse>
     <return xsi:type="ns1:retornoBuscaCadbciGeral">
        <cadastros SOAP-ENC:arrayType="ns1:cadastros[1]" xsi:type="ns1:listaCadastros">
           <item xsi:type="ns1:cadastros">
              <codigo_cadastro >xsi:type="xsd:string">461954</codigo_cadastro>

Код, который выполняется

BuscaCadastroImobiliarioGeral request = objectFactory.createBuscaCadastroImobiliarioGeral();

            Entrada entrada = new Entrada();
            entrada.setCodigoCadastro("461954");

            request.setEntrada(entrada);

            BuscaCadastroImobiliarioGeralResponse response = (BuscaCadastroImobiliarioGeralResponse) client.callWebService("url", request);

            System.out.println(response.getReturnResponse());

public class SOAPConnector extends WebServiceGatewaySupport{

    public Object callWebService(String url, Object request) {
        return getWebServiceTemplate().marshalSendAndReceive(url, request);
    }

}

Проблема в том, что когда я получаю getReturnResponse, он всегда равен нулю. Выше классы модели

CLASS BuscaCadastroImobiliarioGeralResponse

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
    "returnResponse"
})
@XmlRootElement(name = "buscaCadastroImobiliarioGeralResponse")
public class BuscaCadastroImobiliarioGeralResponse {

    @XmlElement(name = "return", required = true)
    private ReturnResponse returnResponse;

    public ReturnResponse getReturnResponse() {
        return returnResponse;
    }

    public void setReturnResponse(ReturnResponse returnResponse) {
        this.returnResponse = returnResponse;
    }
}

CLASS ReturnResponse

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "return", propOrder = {
    "cadastros"
})
@XmlRootElement(name = "return")
@XmlSeeAlso(ReturnResponse.class)

public class ReturnResponse {

    @XmlElement(required = true)
    private List<Cadastros> cadastros;


    public List<Cadastros> getCadastros() {
        return cadastros;
    }

    public void setCadastros(List<Cadastros> cadastros) {
        this.cadastros = cadastros;
    }
}

КЛАСС КАДАСТРОВ

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "cadastros", propOrder = {
    "item"
})
@XmlRootElement(name = "cadastros")
@XmlSeeAlso(Cadastros.class)
public class Cadastros {

    @XmlElement
    private Item item;

    public Item getItem() {
        return item;
    }

    public void setItem(Item item) {
        this.item = item;
    }
}

Проблема относительная: Неправильная отправка веб-службы Spring происходит неправильно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...