Olá pessoal,
Duas dúvidas:
1ª - No portal da SEFAZ (http://www.nfe.fazenda.gov.br/portal/emissor.aspx), tem um emissor de NFe,
como já existe, pq “nós” estamos desenvolvendo tb, ele n atende a todos? ou a tudo?
2ª - Estou ainda na geração do meu XML e qdo executo ele me mostra em console OK, mas qdo tento persistir dá erro.
INICIO DO CÓDIGO (onde acho q pode estar o prob)
@XmlRootElement(name="Nfe", namespace="http://www.portalfiscal.inf.br/nfe")
public class NotaFiscal {
protected InfNfe infNfe;
public InfNfe getInfNfe() {
return infNfe;
}
public void setInfNfe(InfNfe infNfe) {
this.infNfe = infNfe;
}
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(propOrder={"id",
"versao", "ide", "emit", "dest", "det"})
public static class InfNfe {
@XmlAttribute(name="Id",required=true)
@XmlID
private String id;
SAIDA CONSOLE E ARQUIVO
JAXBContext context = JAXBContext.newInstance("br.com.yeld.ynfe.notafiscal");
//saída 1 ? console
Marshaller m = context.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
File t = new File("NFeTESTE.xml");
m.marshal(nf,System.out);
//Saída 2 - arquivo
Marshaller m2 = context.createMarshaller();
m2.marshal(infNfe, new FileOutputStream(t));
XML GERADO
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><ns2:Nfe xmlns:ns2=“<a href="http://www.portalfiscal.inf.br/nfe">http://www.portalfiscal.inf.br/nfe</a>”> BA 414696150 Venda a prazo 00000000000014 RAZÃO SOCIAL - NOME FANTASIA RUA FULADO DE TAL 000006 CENTRO 0000007 EUNAPOLIS BA 45820000 1058 Brasil [telefone removido] 00000000000014 00000000000014 NOME DO CLIENTE ENDERECO DO CLIENTE 000010 PROXIMO DE ALGUM LUGAR CENTRO 0000007 EUNAPOLIS BA 45820000 1058 Brasil [telefone removido] 00000000000014 G0001 RACAO PARA CACHORRO 000001 00001 Genero do produto 5102 UN 10 10 0 0 0 1.00 1.00 1.00 G0002 RACAO PARA CACHORRO 000001 00001 Genero do produto 5102 UN 10 10 0 0 0 1.00 1.00 1.00 </ns2:Nfe></blockquote>ERRO AO PERSISTIR
20/07/2009 09:41:20 ynfe.Main main
SEVERE: null
javax.xml.bind.MarshalException
- with linked exception:
[com.sun.istack.internal.SAXException2: unable to marshal type “br.com.yeld.ynfe.notafiscal.NotaFiscal$InfNfe” as an element because it is missing an @XmlRootElement annotation]
at com.sun.xml.internal.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:304)
at com.sun.xml.internal.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:230)
at javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(AbstractMarshallerImpl.java:75)
at br.com.yeld.ynfe.pojo.XML.gerarXML(XML.java:142)
at ynfe.Main.main(Main.java:37)
Caused by: com.sun.istack.internal.SAXException2: unable to marshal type “br.com.yeld.ynfe.notafiscal.NotaFiscal$InfNfe” as an element because it is missing an @XmlRootElement annotation
at com.sun.xml.internal.bind.v2.runtime.XMLSerializer.reportError(XMLSerializer.java:226)
at com.sun.xml.internal.bind.v2.runtime.ClassBeanInfoImpl.serializeRoot(ClassBeanInfoImpl.java:267)
at com.sun.xml.internal.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:472)
at com.sun.xml.internal.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:301)
… 4 more
CONSTRUÍDO COM SUCESSO (tempo total: 1 segundo)Onde estou vacilando?, futuquei futuquei e ainda n encontrei.
Falew