Erro de comunicacao de NFe

Galera,

Estou quase conseguindo fazer a minha NFe 2.0 funcionar.

Quando estou enviando a minha NFe esta dando o seguinte erro:

com.sun.xml.ws.client.ClientTransportException: HTTP transport error: java.net.SocketException: Software caused connection abort: recv failed

Abaixo o meu codigo:

 NfeDadosMsg dadosMsg = new NfeDadosMsg();
 dadosMsg.getContent().add(enviNFe);
 NfeRecepcao2Soap recepcao2Soap = new NfeRecepcao2().getNfeRecepcao2Soap();
 Holder<NfeCabecMsg> nfeCabecMsg = new Holder<NfeCabecMsg>(createNfeCabecMsg());
 NfeRecepcaoLote2Result lote2Result = recepcao2Soap.nfeRecepcaoLote2(dadosMsg, nfeCabecMsg);

Setando as minhas propriedades do certificado

public static void ajustaSslCertificadoA1() {
        System.setProperty("com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.dump", "true");
        System.setProperty("javax.net.ssl.trustStoreType", "JKS");
        System.setProperty("javax.net.ssl.trustStore", "C:\\certificados\\keystore.jks");
        System.setProperty("javax.net.ssl.trustStorePassword", "123456");
        Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
        System.setProperty("javax.net.ssl.keyStoreType", "PKCS12");
        System.setProperty("javax.net.ssl.keyStore", "C:\\certificados\\certificado.pfx");
        System.setProperty("javax.net.ssl.keyStorePassword", "123456");
    }

Estou usando o netbeans 6.9 para consumir os webservice, estou modificando o metodo de envio da nfe, como vi aqui no forum.

Att

vcsmetallica

Galera, o problema acima era coisas de certificado.

Agora esta dando esse problema:

TEnviNFe nor any of its super class is known to this context.

Alguem ja topou com esse erro na vida???

Att

vcsmetallica td blz ?

Estou iniciando agora meu projeto da NFe 2.0, porem estava gerando as classes pelo WSDL e o eclipse, mas ficou um pouco confuso.
Será que vc pode me passar umas dicas de como começar ?
Estava tentando comunicação com serviço de consulta status.
Você gerou as classes através de alguma ferramenta ?

Estou com prazo um pouco apertado para finalizar o projeto, por isso estou precisando muito de ajuda.

até mais …

att.
Alessandro

e ai acmedis novidades sobre seu projeto 2.0?

consegui se comunicar com o serviço de status?

att,

Sim, fiz teste com os serviços de consulta Status e Inutilização até agora.
Usei o axis2 para gerar as classes java.

então acmedis eu fiz utilizando o axis2 tb para a nfe 1.0

existe a possibilidade de vc colocar aqui a maneira como a qual vc chama os serviços???

obrigado!

opa, tem sim. Esses são os métodos que eu utilizo.

    public void consultaStatus(){
        String nfeDadosMsg = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>"
                + "<nfeDadosMsg><consStatServ versao=\"2.00\""
                + " xmlns=\"http://www.portalfiscal.inf.br/nfe\">" + "<tpAmb>2</tpAmb>"
                + "<cUF>" + tf_codUF.getText() + "</cUF><xServ>STATUS</xServ></consStatServ></nfeDadosMsg>";

        try {
            NfeStatusServico2Stub.NfeCabecMsg nfecabec = new NfeStatusServico2Stub.NfeCabecMsg();
            nfecabec.setCUF(tf_codUF.getText());
            nfecabec.setVersaoDados("2.00");

            NfeStatusServico2Stub.NfeCabecMsg5 cabE = new NfeStatusServico2Stub.NfeCabecMsg5();
            cabE.setNfeCabecMsg(nfecabec);

            configurarSSL();

            ByteArrayInputStream baisDados = new ByteArrayInputStream(nfeDadosMsg.getBytes());
            XMLStreamReader streamDados = XMLInputFactory.newInstance().createXMLStreamReader(baisDados);
            NfeStatusServico2Stub.NfeDadosMsg dado = NfeStatusServico2Stub.NfeDadosMsg.Factory.parse(streamDados);

            String http = Endereco(Integer.parseInt(tf_codUF.getText()), "2");

            NfeStatusServicoNF2Result result = new NfeStatusServico2Stub(http).nfeStatusServicoNF2(dado, cabE);

            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            factory.setNamespaceAware(false);
            DocumentBuilder builder = factory.newDocumentBuilder();
            Document docs = builder.parse(new InputSource(new StringReader(result.getExtraElement().toString())));

            String tag = "cStat";
            NodeList elements = (NodeList) docs.getElementsByTagName(tag);
            Element el = (Element) ((org.w3c.dom.NodeList) elements).item(0);
            String cStat = el.getFirstChild().getNodeValue();

            String tag3 = "xMotivo";
            NodeList elements3 = (NodeList) docs.getElementsByTagName(tag3);
            Element el3 = (Element) ((org.w3c.dom.NodeList) elements3).item(0);
            String xMotivo = el3.getFirstChild().getNodeValue();

            try {
                String tag2 = "dhRetorno";
                NodeList elements2 = (NodeList) docs.getElementsByTagName(tag2);
                Element el2 = (Element) ((org.w3c.dom.NodeList) elements2).item(0);
                String dhRetorno = el2.getFirstChild().getNodeValue();

                String tag4 = "xObs";
                NodeList elements4 = (NodeList) docs.getElementsByTagName(tag4);
                Element el4 = (Element) ((org.w3c.dom.NodeList) elements4).item(0);
                String xObs = el4.getFirstChild().getNodeValue();
                xMotivo = RetiraAscentuacao(xMotivo);
                ta_mensagem.setText(cStat + " - " + xMotivo + "\n");
                xObs = RetiraAscentuacao(xObs);
                System.out.println(dhRetorno + " - " + xObs);
            } catch (Exception e) {
                xMotivo = RetiraAscentuacao(xMotivo);
                ta_mensagem.setText(cStat + " - " + xMotivo + "\n");
            }
        } catch (Exception e) {
            ta_mensagem.setText("E01 - " + e.toString() + "\n");
            System.out.println("E01 - " + e.toString());
        }        
    }
	
	
    public static String Endereco(int uf, String tpAmb) {
        String endereco_new = "";
        if (tpAmb == "2") {
            switch (uf) {
                case 42:
                    endereco_new = "https://homologacao.nfe.sefazvirtual.rs.gov.br/ws/NfeStatusServico/NfeStatusServico2.asmx";
                    break;
                default:
                    break;
            } // fim do case
        } 
        return endereco_new;
    }
	
    public void configurarSSL() throws Exception {
        System.setProperty("javax.net.ssl.keyStoreType", "PKCS12");
        System.setProperty("javax.net.ssl.keyStore", "certificado.pfx");
        System.setProperty("javax.net.ssl.keyStorePassword", senha);

        System.setProperty("javax.net.ssl.trustStoreType", "JKS");
        System.setProperty("javax.net.ssl.trustStore", "certificado_servidor.jks");
        System.setProperty("javax.net.ssl.trustStorePassword", "123456");
    }
	
    public String RetiraAscentuacao(String texto) {
        char[] acentuados2 = new char[]{'ç', 'á', 'à', 'ã', 'â', 'ä', 'é',
            'è', 'ê', 'ë', 'í', 'ì', 'î', 'ï', 'ó', 'ò', 'õ', 'ô', 'ö',
            'ú', 'ù', 'û', 'ü'};
        char[] naoAcentuados2 = new char[]{'c', 'a', 'a', 'a', 'a', 'a', 'e',
            'e', 'e', 'e', 'i', 'i', 'i', 'i', 'o', 'o', 'o', 'o', 'o',
            'u', 'u', 'u', 'u'};
        for (int i = 0; i < acentuados2.length; i++) {
            texto = texto.replace(acentuados2[i], naoAcentuados2[i]);
            texto = texto.replace(Character.toUpperCase(acentuados2[i]),
                    Character.toUpperCase(naoAcentuados2[i]));
        }
        return texto;
    }

As classes geradas pelo WSDL são: NfeStatusServico2CallbackHandler e NfeStatusServico2Stub

valeu acmedis!!!

salvou alguns dias meu hein!!!

funcionando uma belezura!!!

obrigado!!!

Pessoal, consegui gerar as classes através do WSDL2Java, que gerou NfeStatusServico2CallbackHandler.java e NfeStatusServico2Stub.java, agora “engripei”, o que fazer?

Seria compilar os dois arquivos? Quando tento, o NfeStatusServico2Stub.java dá um monte de erros.

Obrigado!!!

Pessoal,

referente aos vários erros ao compilar o arquivo NfeStatusServico2Stub.java, resolvido, faltou setar os .jar do Axis2 no classpath.

Feito isso, agora está ocorrendo os erros:

NfeStatusServico2Stub.java:277: cannot find symbol
symbol  : class NfeStatusServico2CallbackHandler
location: package br.inf.portalfiscal.www.nfe.wsdl.nfestatusservico2
                  final br.inf.portalfiscal.www.nfe.wsdl.nfestatusservico2.NfeSt
atusServico2CallbackHandler callback)
                                                                          ^
NfeStatusServico2Stub.java:91: cannot access javax.wsdl.Definition
class file for javax.wsdl.Definition not found
        _serviceClient = new org.apache.axis2.client.ServiceClient(configuration
Context,_service);
                         ^
Note: NfeStatusServico2Stub.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: NfeStatusServico2Stub.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
2 errors

Alguém sabe qual seria o problema?

Obrigado!!!