Olá Pessoal.
Estou enviando uma NFe de cancelamento como Evento e o retorno é do tipo retEnvEvento.
Tem como eu criar um arquivo java usando javax.xml.bind.annotation através dos schema ?
Obrigado
Eduardo
Olá Pessoal.
Estou enviando uma NFe de cancelamento como Evento e o retorno é do tipo retEnvEvento.
Tem como eu criar um arquivo java usando javax.xml.bind.annotation através dos schema ?
Obrigado
Eduardo
Claro. Dê uma olhada no utilitário xjc (que vem junto com a JDK). Ele faz a geração dos arquivos através dos XML Schemas.
[]'s
Perfeito Alexandre.
Seguindo hehhe
Resultou num erro :
JAXBContext context = JAXBContext.newInstance(TRetEnvEvento.class);
Unmarshaller unmarshaller = context.createUnmarshaller();
JAXBElement<TRetEnvEvento> retcanc = (JAXBElement<TRetEnvEvento>) unmarshaller.unmarshal(new StringReader(retEnvEvento));
"elemento inesperado (uri:"", local:"retEnvEvento"). Os elementos esperados são (none)"
Meu retorno
<retEnvEvento versao="1.00"><idLote>1</idLote><tpAmb>2</tpAmb><verAplic>1</verAplic><cOrgao>43</cOrgao><cStat>128</cStat><xMotivo>Lote de Evento Processado</xMotivo><retEvento versao="1.00"><infEvento Id="ID1"><tpAmb>2</tpAmb><verAplic>1</verAplic><cOrgao>43</cOrgao><cStat>135</cStat><xMotivo>Evento registrado e vinculado a NF-e</xMotivo><chNFe>1</chNFe><tpEvento>110111</tpEvento><nSeqEvento>1</nSeqEvento><CNPJDest>99999999000191</CNPJDest><dhRegEvento>2013-04-17T09:37:57-03:00</dhRegEvento><nProt>1</nProt></infEvento></retEvento></retEnvEvento>
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "TRetEnvEvento", namespace = "http://www.portalfiscal.inf.br/nfe", propOrder = {
"idLote",
"tpAmb",
"verAplic",
"cOrgao",
"cStat",
"xMotivo",
"retEvento"
})
public class TRetEnvEvento {
@XmlElement(required = true)
protected String idLote;
@XmlElement(required = true)
protected String tpAmb;
@XmlElement(required = true)
protected String verAplic;
@XmlElement(required = true)
protected String cOrgao;
@XmlElement(required = true)
protected String cStat;
@XmlElement(required = true)
protected String xMotivo;
protected List<TRetEvento> retEvento;
@XmlAttribute(required = true)
protected String versao;
No seu caso, especificamente, faltou só colocar @XmlRootElement na classe.
[]'s
O erro mudou.
“elemento inesperado (uri:”", local:“retEnvEvento”). Os elementos esperados são <{http://www.w3.org/2000/09/xmldsig#}retEnvEvento>"
@XmlRootElement(name="retEnvEvento")
public class TRetEnvEvento {
Se fosse outro namespace, eu te diria que era só modificar a anotação @XmlRootElement com o namespace novo. Mas esse, especificamente, é de assinatura de XML’s… tem certeza de que a estrutura está certa?
[]'s
Caso não consiga, dê uma olhada no Xstream, acho ele mais simples.
Caso não consiga, dê uma olhada no Xstream, acho ele mais simples.
Não é possível usar XStream com JAX-WS (não sei dizer quanto ao Axis).
[]'s