Enviar XML NF-e para receita do PR

12 respostas
Mackrophus

Olá Pessoal do Guj.

Eu preciso muito da ajuda de voces para não perder 2 meses de trabalho para uma aplicação em Delphi.

Eu estou desenvolvendo uma aplicação de envio dos xmls da NF-e para a Receita Estadual do PR em java, onde o programa roda dentro do ESB Servicemix da Apache.

Eu  consegui gerar os arquivos xml, assinar, mas, não consigo enviar, eu  tentei das seguintes formas:

Nontando o xml e mandando via SOAPMessage;

Via JAXP;

E por ultimo eu baixei os wsdl dos serviços e gerei as classes com o Eclipse JEE 3.4 e está dando um erro que ninguém na terra ja teve.(Ja procurei no Google e Yahoo e ninguém teve igual.).

Eu segui alguns tutoriais/posts de alguns amigos aqui do forum, mas, mesmo assim não consigo mandar.

Pessoal, preciso muito da ajuda de voces e como sou novo em java não tenho experiencia nenhuma em WS o que sei agora, foi tentando enviar o arquivo.

Então se puderem me ajudar de forma passo-a-passo fico imensamente grato, pois, já não sei mais como procurar ou tentar fazer esse arquivo ir.

Abraço a todos.

12 Respostas

ivela

Olá!

Não entendi muito bem: você precisa mandar arquivos XML para o Web Service de NF-e ou você quer utilizar o Web Service da NF-e para enviar dados das suas notas?
Outra coisa: qual o erro que deu?
Se puder, coloque o stack trace e se possível, o código que está utilizando.

Abraços!!

Mackrophus

Olá Alevi.

Cara acho que utilizar Web Service da NF-e para enviar dados das minhas notas, não sei a diferença.

Erro: java.lang.SecurityException: class "javax.xml.rpc.handler.MessageContext"'s signer information does not match signer information of other classes in the same package

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.keyStoreType", "JKS");
	System.setProperty("javax.net.ssl.keyStore", "c:/apache-servicemix-3.3.1/conf/certificado.jks");
	System.setProperty("javax.net.ssl.keyStorePassword", "s1e2n3h4a5");
				
	System.setProperty("javax.net.ssl.trustStoreType", "JKS");
	System.setProperty("javax.net.ssl.trustStore", "c:/apache-servicemix-3.3.1/conf/homologacao.jks");
	System.setProperty("javax.net.ssl.trustStorePassword", "123456");

	try {
		NfeCancelamentoServiceLocator servico = new NfeCancelamentoServiceLocator();
		NfeCancelamento cancelamento = servico.getnfeCancelamentoNF();
		try {
			System.out.println(cancelamento.nfeCancelamentoNF(nfeCabecMsg, nfeDadosMsg));
		} catch (RemoteException re) {
			// TODO: handle exception
			log.info("Erro remoto: " + re.getMessage());
		}
		
	} catch (ServiceException se) {
		// TODO: handle exception
		log.info("Erro service: " + se.getMessage());
	}
	
} catch (Exception e) {
	// TODO: handle exception
	log.info("Erro: " + e.toString());
	e.printStackTrace();
}

As classes do ws eu gerei automatica.

Muito obrigado.

Mackrophus

Cara eu segui os passos desse post, mas, tambem não deu certo.

http://www.guj.com.br/posts/list/15/52035.java

Muito obrigado.

alves.Felipe

vc não tem que setar 2 x o certificado jks…
e esta faltando vc setar o certificado do tipo PKCS12, que tem a extensão .pfx, que é o certificado que você comprou…

Mackrophus

Ola alves.Felipe.

Cara o que eu fiz foi o que eu vi nos posts.

\\Aqui eu setei meu certificado que comprei, e importei para um jks, mas, eu tambem fis como PKC12 e deu no mesmo
System.setProperty("javax.net.ssl.keyStoreType", "JKS");  
System.setProperty("javax.net.ssl.keyStore", "c:/apache-servicemix-3.3.1/conf/certificado.jks");  
System.setProperty("javax.net.ssl.keyStorePassword", "s1e2n3h4a5");  

\\Aqui eu setei o certificado do WS de homologação que instalei no IE, exportei e importei em um jks                  
System.setProperty("javax.net.ssl.trustStoreType", "JKS");  
System.setProperty("javax.net.ssl.trustStore", "c:/apache-servicemix-3.3.1/conf/homologacao.jks");  
System.setProperty("javax.net.ssl.trustStorePassword", "123456");

Eu tentei somente com o de cima e ele não conseguiu conectar(foi o que eu entendi do erro), depois que setei os dois(meu + do ws) ele conseguiu conectar.

Muito obrigado.

alves.Felipe

Mackrophus:
Cara eu segui os passos desse post, mas, tambem não deu certo.

http://www.guj.com.br/posts/list/15/52035.java

Muito obrigado.


eu segui esse post tb e rodou certinho…
e la esta assim:

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.keyStoreType", "PKCS12");   
        System.setProperty("javax.net.ssl.keyStore","C:\\certificados\\cert.pfx");//Aqui vem o arquivo do certificado do seu cliente   
        System.setProperty("javax.net.ssl.keyStorePassword", "SENHA DO CERTIFICADO");//Aqui a senha deste certificado   
  
        System.setProperty("javax.net.ssl.trustStoreType", "JKS");   
        System.setProperty("javax.net.ssl.trustStore", "C:\\certificados\\nfe.keystore");//Aqui vem o arquivo criado através do comando keytool no passo 3

System.setProperty(“javax.net.ssl.keyStore”,“C:\certificados\cert.pfx”);//Aqui vem o arquivo do certificado do seu cliente

qual o erro q vc recebe?

Mackrophus

Cara me explica como voce roda a sua aplicação, pois, o erro que eu estou recebendo é esse:

Erro: java.lang.SecurityException: class "javax.xml.rpc.handler.MessageContext"'s signer information does not match signer information of other classes in the same package

E eu gerei as classes java a partir do wsdl e está gerando mais que 6 classes conforme ele disse.

Muito obrigado.

Mackrophus

alves.Felipe.

Cara eu segui novamente passo a passo o post que eu havia te passado, mas, agora quando eu gero as classes do WSDL a classe NfeStatusServicoSoapStub fica com erro.

Segue abaixo o link para baixar o projeto que criei, e eu não sei se meu eclipse criou alguma coisa errada, mas, veja que tem algumas coisas que não batem.

Segue o link para baixar o projetinho http://www.armariodecamping.com.br/TesteWSStatus.rar

Desde já muito obrigado por sua ajuda.

Mackrophus

alves.Felipe e Alevi.

Caras gostaria antes de tudo de coração agradecer a ajuda que voces me deram, voces foram 10, em especial o alves.Felipe.

O que aconteceu é o seguinte, com o StatusServico não rolou mesmo ele dá uns paus que se quiser ver é so baixar o rar da ultima mensagem que voces podem ver, eu fiz o teste com o consultanfe e deu certo.

O problema é o seguinte o ServiceMix tem uma biblioteca que tem a classe MessageContext e quando eu coloco minha aplicação para rodar nele ele dá o erro que a Assinatura da Classe que no ServiceMix é diferente da do Axis.

Então eu pensei em ver alguma coisa para rodar no Tomcat, seria possivel? Tipo assim, configurar uma classe para ficar rodando monitorando o banco de dados, se achou uma nota ele executa minha classe que gera e manda o xml? Se alguem tiver alguma ideia me passa um tutorial, apostila que eu me viro.

Abraço galera e muito obrigado por me ajudar nessa fase.

alves.Felipe

então cara …sobre o wsdl de status da parana dava erro mesmo… ai eu peguei de outro estado (de sp se não me engano), ai só alterei a
url depois de ter gerado as classes…

cara sobre mandar as nfe para a sefa… eu não deixei automatico… oq eu faço é qdo tiver nf para mandar… eu coloco um status…
ai o usuário vai ver se tem nf para enviar… se tiver ele clica no link “enviar Nfe”… e assim por diante… entende?

Valeo pelo em especial.. hahahah
Mackrophus

Olá Galera,

Agora o rolo é outro, to com um problema pra assinar com o A3, alguem tem algum exemplo, link, qualquer coisa?

jeroqueiroz

Mackrophus,

Ja conseguiu a classe para Certficado A3?

Criado 18 de junho de 2009
Ultima resposta 23 de jul. de 2011
Respostas 12
Participantes 4