Unmarshaling Soap Ответ на объекты - PullRequest
0 голосов
/ 23 марта 2020

У меня есть SOAP ответ как в xml файле

    <?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
    <env:Header/>
    <env:Body Id="Body">
        <siiLR:RespuestaLRFacturasEmitidasxmlns
                :siiLR="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/RespuestaSuministro.xsd"
                xmlns:sii="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">
            <siiLR:CSV>9GHN4F5XPJZT5J3B</siiLR:CSV>
            <siiLR:DatosPresentacion>
                <sii:NIFPresentador>A84532501</sii:NIFPresentador>
                <sii:TimestampPresentacion>16-01-2015 12:26:51</sii:TimestampPresentacion>
            </siiLR:DatosPresentacion>
            <siiLR:Cabecera>
                <sii:IDVersionSii>0.6</sii:IDVersionSii>
                <sii:Titular>
                    <sii:NombreRazon>CERTI</sii:NombreRazon>
                    <sii:NIF>89890001K</sii:NIF>
                </sii:Titular>
                <sii:TipoComunicacion>A0</sii:TipoComunicacion>
            </siiLR:Cabecera>
            <siiLR:EstadoEnvio>Correcto</siiLR:EstadoEnvio>
            <siiLR:RespuestaLinea>
                <siiLR:IDFactura>
                    Taxation IT DepartmentSubdirectorate General for Applications SII ApplicationVersion: 0.6Printed:
                    15/03/2017 Page: 152/207
                    <sii:IDEmisorFactura>
                        <sii:NIF>A84532501</sii:NIF>
                    </sii:IDEmisorFactura>
                    <sii:NumSerieFacturaEmisor>01</sii:NumSerieFacturaEmisor>
                    <sii:FechaExpedicionFacturaEmisor>15-01-2015</sii:FechaExpedicionFacturaEmisor>
                </siiLR:IDFactura>
                <siiLR:EstadoRegistro>Correcto</siiLR:EstadoRegistro>
            </siiLR:RespuestaLinea>
            <siiLR:RespuestaLinea>
                <siiLR:IDFactura>
                    <sii:IDEmisorFactura>
                        <sii:NIF>A84532501</sii:NIF>
                    </sii:IDEmisorFactura>
                    <sii:NumSerieFacturaEmisor>02</sii:NumSerieFacturaEmisor>
                    <sii:FechaExpedicionFacturaEmisor>15-01-2015</sii:FechaExpedicionFacturaEmisor>
                </siiLR:IDFactura>
                <siiLR:EstadoRegistro>Correcto</siiLR:EstadoRegistro>
            </siiLR:RespuestaLinea>
        </siiLR:RespuestaLRFacturasEmitidas>
    </env:Body>
</env:Envelope>

Я пытаюсь разобрать тело в java Объект, прочитав файл

У меня есть сгенерировать классы Pojo с помощью плагина maven

Моя проблема заключается в том, что когда я пытаюсь прочитать xml и сгенерировать SOAPMessage, он выдает ноль

      String s =readXml("sample.xml");
    InputStream is = new ByteArrayInputStream(s.getBytes());
    SOAPMessage message =MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL).createMessage(null, is);
    System.out.println(">>"+message.getSOAPBody());

Но message.getSOAPBody().getTextContent() возвращает значения с XML даже тело пусто

Также я запутался, как я могу преобразовать его в Object, потому что класс с именем "RespuestaLRFacturasEmitidas" не генерируется, когда плагин maven создает класс

но я вижу, что JaxbWrapper создан

    @XmlElementDecl(namespace = "https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/RespuestaSuministro.xsd", name = "RespuestaLRFacturasEmitidas")
public JAXBElement<RespuestaLRFEmitidasType> createRespuestaLRFacturasEmitidas(RespuestaLRFEmitidasType value) {
    return new JAXBElement<RespuestaLRFEmitidasType>(_RespuestaLRFacturasEmitidas_QNAME, RespuestaLRFEmitidasType.class, null, value);
}

Я не уверен, как я могу создать экземпляр unmarshaller для этого

 Unmarshaller unmarshaller = JAXBContext.newInstance(<What class ???>).createUnmarshaller();
...