Bom dia Gujeiros…hehe
Estou envolvido em um projeto da NFe (Nota Fiscal Eletrônica). To tentando acessar o certificado digital que está inserido dentro do projeto. Coloquei este dentro de um pacote (não sei se inseri este arquivo de forma correta, ou seja, se é em um pacote que deveria ter colocado este). Entretando, queria saber como faço para utiliza-lo na minha classe de implementação. Vou postar um trecho do código onde tenho que trabalhar com ele. Segue:
package recepcaoevento;
import br.inf.portalfiscal.www.nfe.wsdl.recepcaoevento.RecepcaoEventoStub;
import br.inf.portalfiscal.www.nfe.wsdl.recepcaoevento.RecepcaoEventoStub.NfeCabecMsg;
import br.inf.portalfiscal.www.nfe.wsdl.recepcaoevento.RecepcaoEventoStub.NfeCabecMsgE;
import br.inf.portalfiscal.www.nfe.wsdl.recepcaoevento.RecepcaoEventoStub.NfeDadosMsg;
import br.inf.portalfiscal.www.nfe.wsdl.recepcaoevento.RecepcaoEventoStub.NfeRecepcaoEventoResult;
import java.net.URL;
import java.security.Security;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.util.AXIOMUtil;
public class Recepcao {
public String getRecepcaoEvento(String nfeDadosMsg, String vXML,
String codEstado, String http, String caminhoCertCliente,
String senhaCertCliente, String caminhoCasserts)
{
try
{
NfeCabecMsg nfeCabecMsg = new RecepcaoEventoStub.NfeCabecMsg();
/*Código do Estado(UF)*/
nfeCabecMsg.setCUF(codEstado);
/*Versão do XML*/
nfeCabecMsg.setVersaoDados(vXML);
NfeCabecMsgE nfeCabecMsgE = new RecepcaoEventoStub.NfeCabecMsgE();
nfeCabecMsgE.setNfeCabecMsg(nfeCabecMsg);
/*XML de Consulta*/
OMElement ome = AXIOMUtil.stringToOM(nfeDadosMsg.toString());
NfeDadosMsg dadosMsg = new NfeDadosMsg();
dadosMsg.setExtraElement(ome);
/*Informações do Certificado Digital*/
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.clearProperty("javax.net.ssl.keyStore");
System.clearProperty("javax.net.ssl.keyStorePassword");
System.clearProperty("javax.net.ssl.trustStore");
//É AQUI QUE TENHO QUE FAZER A ALTERAÇÃO PARA UTILIZAR O CERTIFICADO QUE ESTA NO PROJETO, INVÉS DE PEGA-LO COMO PARÂMETRO(CAMINHO)
System.setProperty("javax.net.ssl.keyStore", caminhoCertCliente);
System.setProperty("javax.net.ssl.keyStorePassword", senhaCertCliente);
System.setProperty("javax.net.ssl.trustStoreType", "JKS");
System.setProperty("javax.net.ssl.trustStore", caminhoCasserts);
URL url = new URL(http);
RecepcaoEventoStub stub = new RecepcaoEventoStub(url.toString());
NfeRecepcaoEventoResult result = stub.nfeRecepcaoEvento(dadosMsg, nfeCabecMsgE);
//XML de Retorno da SEFAZ
return result.getExtraElement().toString();
}
catch(Exception e)
{
throw new RuntimeException("Message:" + e.getMessage() + " Cause: " + e.getCause() );
}
}
}
Neste caso, teria que informar o caminho do pacote, tenho que informar este certificado como parâmetro através de uma classe File?
Desculpa a ignorância ou se não perguntei direito, mas qualquer dica agradeço…XD