soap—如何将soapmessage对象转换为java对象

ktecyv1j  于 2021-08-20  发布在  Java
关注(0)|答案(0)|浏览(375)

下面是这个soap响应,我需要将其解析为java对象……但是当我打印它时,所有字段都返回null。下面是我用来解释响应的类。我一直试图使用jaxb来解压内容,但没有一次成功。

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
       <SOAP-ENV:Header/>
       <SOAP-ENV:Body>
          <ns2:consultarPosicaoCotistaOnOfflineFundoResponse>
             <ns2:listCotistaFundo>
                <ns2:cotistaFundo>
                   <ns2:cdFundo>014588</ns2:cdFundo>
                   <ns2:nmCliente>BRADESCO FIC FIM GAVEA MACRO</ns2:nmCliente>
                   <ns2:dtPosicao>2021-02-18</ns2:dtPosicao>
                   <ns2:vlCota>1.3121393</ns2:vlCota>
                   <ns2:qtdCotas>43650.7211055</ns2:qtdCotas>
                   <ns2:vlCorrigido>57275.83</ns2:vlCorrigido>
                   <ns2:vlIr>221.1</ns2:vlIr>
                   <ns2:vlIof>0</ns2:vlIof>
                   <ns2:vlLiquidoResg>57054.73</ns2:vlLiquidoResg>
                   <ns2:vlContaCorrente>57054.73</ns2:vlContaCorrente>
                   <ns2:vlContaInvestimento>57054.73</ns2:vlContaInvestimento>
                   <ns2:noCnpjFundo>28428211000149</ns2:noCnpjFundo>
                   <ns2:icAfPosicao>F</ns2:icAfPosicao>
                   <ns2:vlAplicacao>49069.11</ns2:vlAplicacao>
                   <ns2:qtCotasBloqueadas>0</ns2:qtCotasBloqueadas>
                   <ns2:vlBrutoBloqueado>0</ns2:vlBrutoBloqueado>
                   <ns2:vlLiquidoBloqueado>0</ns2:vlLiquidoBloqueado>
                   <ns2:vlAplicacaoNaoCotizada>0</ns2:vlAplicacaoNaoCotizada>
                   <ns2:vlResgateNaoCotizado>0</ns2:vlResgateNaoCotizado>
                </ns2:cotistaFundo>
             </ns2:listCotistaFundo>
             <ns3:responseMessages>
                <ns3:message>
                   <ns3:code>EJCOT-0000</ns3:code>
                   <ns3:desc>Operação Concluída</ns3:desc>
                </ns3:message>
             </ns3:responseMessages>
          </ns2:consultarPosicaoCotistaOnOfflineFundoResponse>
       </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>

 Unmarshaller unmarshaller = JAXBContext.newInstance(ConsultarPosicaoCotistaOnOfflineFundoResponse.class).createUnmarshaller();
            response = (ConsultarPosicaoCotistaOnOfflineFundoResponse) unmarshaller.unmarshal(soapMessage.getSOAPBody().extractContentAsDocument());

@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "consultarPosicaoCotistaOnOfflineFundoResponse",
                    namespace = "http://totvs.cot.webservices")
public class ConsultarPosicaoCotistaOnOfflineFundoResponse implements Serializable {

    private ListCotistaFundo[] listCotistaFundo;

    public ListCotistaFundo[] getCotistaFundo() {
        return listCotistaFundo;
    }
    @XmlElement(name ="listCotistaFundo",
            namespace = "http://totvs.cot.webservices")
    public void setCotistaFundos(ListCotistaFundo[] listCotistaFundo) {
        this.listCotistaFundo = listCotistaFundo;
    }
}

@XmlAccessorType(XmlAccessType.FIELD)
public class ListCotistaFundo {

    @XmlElement(name = "cdFundo")
    private String cdFundo;
    @XmlElement(name = "nmCliente")
    private String nmCliente;
    @XmlElement(name = "dtPosicao")
    private Date dtPosicao;
    @XmlElement(name = "vlCota")
    private BigDecimal vlCota;
    @XmlElement(name = "qtdCotas")
    private BigDecimal qtdCotas;
    @XmlElement(name = "vlCorrigido")
    private BigDecimal vlCorrigido;
    @XmlElement(name = "vlIr")
    private BigDecimal vlIr;
    @XmlElement(name = "vlIof")
    private BigDecimal vlIof;
    @XmlElement(name = "vlLiquidoResg")
    private BigDecimal vlLiquidoResg;
    @XmlElement(name = "vlContaCorrente")
    private BigDecimal vlContaCorrente;
    @XmlElement(name = "vlContaInvestimento")
    private BigDecimal vlContaInvestimento;
    @XmlElement(name = "noCnpjFundo")
    private double noCnpjFundo;
    @XmlElement(name = "icAfPosicao")
    private String icAfPosicao;
    @XmlElement(name = "vlAplicacao")
    private BigDecimal vlAplicacao;
    @XmlElement(name = "qtCotasBloqueadas")
    private BigDecimal qtCotasBloqueadas;
    @XmlElement(name = "vlBrutoBloqueado")
    private BigDecimal vlBrutoBloqueado;
    @XmlElement(name = "vlLiquidoBloqueado")
    private BigDecimal vlLiquidoBloqueado;
    @XmlElement(name = "vlAplicacaoNaoCotizada")
    private BigDecimal vlAplicacaoNaoCotizada;
    @XmlElement(name = "vlResgateNaoCotizado")
    private BigDecimal vlResgateNaoCotizado;

    Getters and Setters ...

有人知道如何在java对象中转换响应吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题