Nfe - Nota Fiscal Eletronica

Como deve ser estes xml’s vc tem um exemplo disso que dados vou colocar nele?
Da para gerar isso com sax?Ja brinquei um pouco com ele.

[quote=fbarreto]Como deve ser estes xml’s vc tem um exemplo disso que dados vou colocar nele?
Da para gerar isso com sax?Ja brinquei um pouco com ele.[/quote]

Como deve ser estes xml’s vc tem um exemplo disso que dados vou colocar nele?

tudo esta escrito no Manual de integração Contribuinte os padrões de como vc deve proceder para criar os xml

Da para gerar isso com sax?Ja brinquei um pouco com ele

Use a ferramenta que vc quiser para gerar eles, eu usei JAXB, crio minhas classes java beans e com as anotações do JAXB crio os xml nos padroes descritos no Manual de integração Contribuinte, acredito que sax sera apenas uma das feramentas que tera que usar, abraços.

Estou tentando gerar meus primeiros xml para teste com jaxb mas esta dando erro vejam meu codigo:


    public void ObjectToXml() throws JAXBException, FileNotFoundException{
        TipoProduto tp = new TipoProduto();
        tp.setId(new Long(1678));
        tp.setNome("novo tipo");

        
        JAXBContext context = JAXBContext.newInstance("agileti.smartge.model.erp");
        //saída 1 ? console
        Marshaller m = context.createMarshaller();
        m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
        m.marshal(tp, System.out);
        
        File f = new File("home/agile3/TipoProduto.xml");
        Marshaller m2 = context.createMarshaller();
        m2.marshal(tp, new FileOutputStream(f));
        System.out.println("Passou::::::::::::::::::::::::::::::::::;;");
    }

esta dando o seguinte erro:


Caused by: javax.xml.bind.JAXBException: "agileti.smartge.model.erp.TipoProduto" doesnt contain ObjectFactory.class or jaxb.index

Coloquei o jaxb.index no mesmo pacote da classe que quero gerar o xml com o seguinte valor:

agileti.smartge.model.erp.TipoProduto

Alguem sabe o que eh este erro?
Obrigada,bjos.

Ixi… eu gerei as classes usando os XSD… dai “nao tem mto erro”… desconheco o erro!

Consegui gerar um primeiro xml de teste assim:


 TipoProduto tp = new TipoProduto();
        tp.setId(new Long(1678));
        tp.setNome("novo tipo");

        //saída 1 ? console

        JAXBContext context = JAXBContext.newInstance(tp.getClass());

        Marshaller marshaller = context.createMarshaller();
        marshaller.marshal(tp, new FileWriter("tipoProduto.xml")); //I want to save the

        Marshaller m = context.createMarshaller();
        m.setProperty(Marshaller.JAXB_ENCODING, new String("UTF-8"));
        m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
        m.marshal(tp, System.out);

Agora entaum devo pegar a minha classe NotaFiscal e gerar um xml dela isso?
Este xml gerado que eh enviado para a receita pelo Ws depois?

de uma olhada no esquema na pagina 91/92 (PDF receita versao 3.0) em diante sobre o envio de NFe… vai te dar uma boa visao do assunto…

Pessoal…
Eu vi uns topicos falando sobre o problema do ns2 com JAXB…
a NFe foi susse, o lote de NFe ta perfeito, mas pulei para o servico de Inutilizar numeros e olha o XML que sai…

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <inutNFe xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:ns2="http://www.portalfiscal.inf.br/nfe" versao="1.07"> <ns2:infInut Id="NFe511234567890123455001000000101000000101"> <tpAmb>2</tpAmb> <xServ>INUTILIZAR</xServ> <cuf>53</cuf> <ano>09</ano> <cnpj>00000000123456</cnpj> <mod>55</mod> <serie>123</serie> <nnfIni>101</nnfIni> <nnfFin>111</nnfFin> <xJust>Falha no Sistema</xJust> </ns2:infInut> </inutNFe>

Isso que eu fiz umas modificoes na classe para gerar mais bonita possível e ainda nada… ta triste a coisa…

ja fiz ateh isso para remover, e naum vai:

Ou se for o caso tambem pode ser:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns2:inutNFe xmlns="http://www.portalfiscal.inf.br/nfe" xmlns:ns2="http://www.w3.org/2000/09/xmldsig#" versao="1.07"> <infInut Id="NFe511234567890123455001000000101000000101"> <tpAmb>2</tpAmb> <xServ>INUTILIZAR</xServ> <cUF>53</cUF> <ano>09</ano> <CNPJ>00000000123456</CNPJ> <mod>55</mod> <serie>123</serie> <nNFIni>101</nNFIni> <nNFFin>111</nNFFin> <xJust>Falha no Sistema</xJust> </infInut> </ns2:inutNFe>

e na validacao de xml da isso:

amigos, não acompanhei o tópico todo, mas se vcs tentarem gerar o xml baseado em XSDs da receita não irá funcionar corretamente, uma vez que xsds de vários estados estão com problemas, principalmente de referências.

Solucoes existem mas nao sao perfeitas, uma delas é:

[code]public static void ajustaXml(File file) throws Exception {
FileReader reader = new FileReader(file);
BufferedReader leitor = new BufferedReader(reader);
leitor.read();
String vlr = “”;
StringBuffer vlrFile = new StringBuffer();
String line = leitor.readLine();

	while(line != null) {
	vlrFile.append( line );
	line = leitor.readLine();
	}

	vlr = vlrFile.toString();
	// aqui acontece a gambi? temporariamente resolve o problema
	if (vlr.indexOf("ns2:") > -1) {
	vlr = vlr.replaceAll("ns2:", "");
	}

	if (vlr.indexOf(":ns2") > -1) {
	vlr = vlr.replaceAll(":ns2", "");
	}

	leitor.close();
	reader.close();

	FileWriter writer = new FileWriter(file);
	PrintWriter saida = new PrintWriter(writer);

	saida.print( "<" + vlr);

	writer.close();
	saida.close();
}

[/code]

Mas ainda naum validou meu xml aqui…

ja mandei um lote usando o xsd deles… problema esta nos outros servicos…

Sera que naum tem como fazer um leve ajuste no XSD para usar o JAXB…

o lote tudo bem… é possível somente corrigir os XSDs para efeito de geraçao.

Como se faz isso?

ai pessoal, HELP!!!

seguinte, gero todos meus beans pra NFe e uso as anotacoes do JAXB pra escrever no xml eu não gero meus xml através dos XSD, entao seguinte tava criando o bean da assinatura quando me deparei com 2 tags iguais, putz não achei a anotação responsavel por escrever 2 tags iguais alguem ai pode me ajudar?

preciso fazer isso:

<Transforms>
<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
<Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
</Transforms>

mminha classe:
Acrditava que poderia ter 2 classes (Transform e Transform2) e em cada uma um atributo diferente, mas não da, alguem tem alguma ideia? abraços.

package nfe.entity;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;

@XmlAccessorType(XmlAccessType.FIELD)
class Transforms {

    @XmlElement(name = "Transform")
    private Transform transform;

    @XmlElement(name = "Transform")
    private Transform2 transform;

}

Pessoal, bom dia.

Estamos estudando a possibilidade de implementarmos um integrador do nosso erp para o sistema de nf-e.
Só que nosso prazo é primeiro de setembro.
Temos como opção comprar um produto.

Como base queria saber qto tempo vcs usaram para implementar esta solução.

grato
abs

4 dias para gerar xml, conectar com webservice…
15 dias testando.

Bom, estou voltando ao desenvolvimento da NF-e e estou com um problema realmente estranho.
Estou utilizando um certificado do tipo A3.
Gero o xml, assino já td certo.
Mas qdo vou gerar a comunicação com o Webservice do Rio Grande do Sul utilizando a ferramenta WSDL2Java do Axis ocorre o erro:

Isto, no caso, retorna que nao tenho permissão de acesso.

Estou setando a parte de keystore e truststore deste modo:

Onde o jssecacerts é gerado de acordo com o http://blogs.sun.com/andreas/resource/InstallCert.java ja mencionado neste tópico. Não sei se tem que informar a cadeia de certificados em algum lugar, mas pelo que vejo dentro do jssecacerts fica armazenado toda da cadeira dos certificados do Servidor e quando acessa o certificado do cliente, este tb carrega, pois a cadeia esta dentro do SmartCard.

Se eu fazer a comunicação usando o webservice do Mato Grosso conecta bonitinho e gerar os fontes baseado no wsdl que o servidor retorna.
Espero que alguém possa dar uma luz nesse caso…

Obrigado

Olá pessoal, blz?
Aproveitando o embalo dos problemas com NFe, deixa eu ver se alguem pode me ajudar…

é o seguinte, eu consegui assinar meu arquivo e transmitir blz…porém, estou com um problema estranho…
por exemplo, utilizando tipo A3, ao enviar uma solicitação de status de serviço, meu programa me pede a senha do cartão, eu informo a senha correta, e ele transmite a solicitação blz. Aí, se eu solicitar novamente, informando uma senha errada, ele continua solicitando, ou seja, é como se de alguma maneira meu codigo armazenasse minha ultima senha válida. O mesmo ocorre se digito a primeira vez uma senha errada, e em seguida digito corretamente, ai nao transmite.
Eu li algumas coisas sobre remover o provider ao final. Eu tentei usar :

e tentei tb

mas ambos estão me retornando o erro

[quote]java.net.SocketException: java.security.NoSuchAlgorithmException: Error
constructing implementation (algorithm: Default, provider: SunJSSE, class:
com.sun.net.ssl.internal.ssl.DefaultSSLContextImpl )[/quote]

Outra dúvida é: como faço pra validar minha senha? tipo, se digitar uma senha errada eu poder dar a minha mensagem de “Senha inválida” pois não consigo obter nenhum codigo de erro.

Obrigado pela atenção…
Abraço…

Estou com problema para acessar os Web services passando pelo proxy



public class Main {

    public static void main(String... args) {
        try {

            System.setProperty("java.protocol.handler.pkgs", "com.sun.net.ssl.internal.www.protocol");
            Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());

            System.setProperty("javax.net.ssl.trustStoreType", "JKS");
            System.setProperty("javax.net.ssl.trustStore", "c:\\homologa_SP");  // Arquivo gerado com o InstallCert

            System.setProperty("javax.net.ssl.keyStoreType", "PKCS12");
            System.setProperty("javax.net.ssl.keyStore", "c:\\NFe emissao.pfx");  // o arquivo com o certificado do emitente
            System.setProperty("javax.net.ssl.keyStorePassword", "senhaCertificado");  // a senha do arquivo


            System.setProperty("https.proxyHost", "192.168.1.254");
            System.setProperty("https.proxyPort", "5981");
            System.setProperty("https.proxyUser", "usuarioproxy");
            System.setProperty("https.proxyPassword", "senha");

            NfeStatusServicoNF status = new ObjectFactory().createNfeStatusServicoNF();
            status.setNfeCabecMsg("<?xml version=\"1.0\" encoding=\"UTF-8\" ?><cabecMsg xmlns=\"http://www.portalfiscal.inf.br/nfe\" versao=\"1.02\"><versaoDados>1.07</versaoDados></cabecMsg>");
            status.setNfeDadosMsg("<?xml version=\"1.0\" encoding=\"UTF-8\" ?><consStatServ xmlns=\"http://www.portalfiscal.inf.br/nfe\" versao=\"1.07\"><tpAmb>2</tpAmb><cUF>35</cUF><xServ>STATUS</xServ></consStatServ>");
            NfeStatusServico service = new NfeStatusServico(new URL("https://homologacao.nfe.fazenda.sp.gov.br/nfeweb/services/nfestatusservico.asmx "), new QName("http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico", "NfeStatusServico"));
            NfeStatusServicoSoap soap = service.getNfeStatusServicoSoap();
            String result = soap.nfeStatusServicoNF(status.getNfeCabecMsg(), status.getNfeDadosMsg());

            System.out.println(result);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

O erro é o seguinte:

[color=red] com.sun.xml.internal.ws.wsdl.parser.InaccessibleWSDLException: 2 counts of InaccessibleWSDLException.

java.io.IOException: Unable to tunnel through proxy. Proxy returns "HTTP/1.0 407 Proxy Authentication Required"
java.io.IOException: Unable to tunnel through proxy. Proxy returns “HTTP/1.0 407 Proxy Authentication Required”

    at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.tryWithMex(RuntimeWSDLParser.java:146)
    at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.parse(RuntimeWSDLParser.java:122)
    at com.sun.xml.internal.ws.client.WSServiceDelegate.parseWSDL(WSServiceDelegate.java:226)
    at com.sun.xml.internal.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:189)
    at com.sun.xml.internal.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:159)
    at com.sun.xml.internal.ws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:83)
    at javax.xml.ws.Service.<init>(Service.java:56)
    at br.inf.portalfiscal.nfe.wsdl.nfestatusservico.NfeStatusServico.<init>(NfeStatusServico.java:44)
    at Main.main(Main.java:48)

[/color]

O erro me informa que o proxy exige usuário e senha que estão sendo passados, eu estou setando minhas propriedades como: https.proxyHost

[quote=minerinho]Olá pessoal, blz?
Aproveitando o embalo dos problemas com NFe, deixa eu ver se alguem pode me ajudar…

Outra dúvida é: como faço pra validar minha senha? tipo, se digitar uma senha errada eu poder dar a minha mensagem de “Senha inválida” pois não consigo obter nenhum codigo de erro.

Obrigado pela atenção…
Abraço…[/quote]

dae pessoal
ando bem sem tempo pra ajudar a turma aqui… mas vamos la…

normalmente a senha do certificado fica numa properties dentro do System.Properties

entao isso ou algo assim, deve funcionar

para testar se a senha está certa ou não, eu sempre leio a validade do e-cnpj, seja A1 ou A3, nesta leitura eu preciso acessar o certificado, quando ele me retorna um BadPaddingException é pq a senha está inválida…

abraço