У меня есть код, который использует веб-сервис и возвращает XML, возвращаемый для преобразования в объект. Я получаю XML и использую его для преобразования в объект. Преобразование происходит, но все их атрибуты остаются нулевыми.
Веб-служба возвращает XML:
<?xml version=\"1.0\" encoding=\"UTF-8\"?><retDistDFeInt xmlns=\"http://www.portalfiscal.inf.br/nfe\" versao=\"1.01\"><tpAmb>2</tpAmb><verAplic>1.2.0</verAplic><cStat>137</cStat><xMotivo>Nenhum documento localizado</xMotivo><dhResp>2020-03-20T20:45:39-03:00</dhResp><ultNSU>000000000000051</ultNSU><maxNSU>000000000000141</maxNSU></retDistDFeInt>
Метод, который пытается преобразовать это XML в RetDistDFeInt.
public static RetDistDFeInt getObject(String xml) throws Exception {
return JAXB.unmarshal(new StringReader(xml), RetDistDFeInt.class);
}
Класс RetDistDFeInt:
@XmlRootElement(name="retDistDFeInt")
public class RetDistDFeInt {
private AMBIENTE tpAmb;
private String verAplic;
private int cStat;
private String xMotivo;
private LocalDateTime dhResp;
private Long ultNSU;//Último do bloco retornado
private Long maxNSU;//Máximo já gerado para o autor
private LoteDistDFeInt loteDistDFeInt;
@XmlJavaTypeAdapter(value=AMBIENTE.Adapter.class)
@XmlElement(name="tpAmb")
public AMBIENTE getTpAmb() {
return tpAmb;
}
public void setTpAmb(AMBIENTE tpAmb) {
this.tpAmb = tpAmb;
}
@XmlElement(name="verAplic")
public String getVerAplic() {
return verAplic;
}
public void setVerAplic(String verAplic) {
this.verAplic = verAplic;
}
@XmlElement(name="cStat")
public int getcStat() {
return cStat;
}
public void setcStat(int cStat) {
this.cStat = cStat;
}
@XmlElement(name="xMotivo")
public String getxMotivo() {
return xMotivo;
}
public void setxMotivo(String xMotivo) {
this.xMotivo = xMotivo;
}
@XmlJavaTypeAdapter(value=LocalDateTimeAdapter.class)
@XmlElement(name="dhResp")
public LocalDateTime getDhResp() {
return dhResp;
}
public void setDhResp(LocalDateTime dhResp) {
this.dhResp = dhResp;
}
@XmlElement(name="ultNSU")
public Long getUltNSU() {
return ultNSU;
}
public void setUltNSU(Long ultNSU) {
this.ultNSU = ultNSU;
}
@XmlElement(name="maxNSU")
public Long getMaxNSU() {
return maxNSU;
}
public void setMaxNSU(Long maxNSU) {
this.maxNSU = maxNSU;
}
@XmlElement(name="loteDistDFeInt", required=false)
public LoteDistDFeInt getLoteDistDFeInt() {
return loteDistDFeInt;
}
public void setLoteDistDFeInt(LoteDistDFeInt loteDistDFeInt) {
this.loteDistDFeInt = loteDistDFeInt;
}
}