Olá pessoal, blz?
Estou com um probleminha aqui, q nao to conseguindo achar resposta em lugar nenhum…
Criei uma rotina de transmissão da NFe. Esta rotina faz a comunicação com o WS.
Está me dando um erro apenas quando coloco uma linha no código:
Security.removeProvider(Nome);
Sem ela não me dá erro nenhum. Porém, começa a aparecer problemas de senha do keystore, ou seja, se insiro uma senha válida a primeira vez, todas as outras vezes que eu inserir uma senha inválida, é como se ele armazenasse a primeira senha e desconsiderasse as outras. Li em alguns tópicos desse forum coisas sobre remover o Provider adicionado anteriormente para corrigir esse problema de senha “memorizada”. É o que estou tentando fazer mas me dá o seguinte erro:
[quote]
Erro HTML: 1.00 - java.security.NoSychAlgorithmException:Error constructing implementaction (algorithm: Default, provider: SunJSSE, class: com.sum.net.ssl.internal.ssl.DefaultSSlContextImpl)[/quote]
Estou desenvolvendo este aplicativo de trasmissão no GENEXUS. Logo, minhas linhas de código java são as seguinte:
[code] public void teste (String senha, String TpCert, String CaminhoCfg)
{
try {
KeyStore ks = null;
Provider p;
if (TpCert.equals("A1"))
{
System.setProperty("java.protocol.handler.pkgs", "com.sun.net.ssl.internal.www.protocol");
p = new com.sun.net.ssl.internal.ssl.Provider();
}
else
p = new sun.security.pkcs11.SunPKCS11(CaminhoCfg);
Security.addProvider(p);
String Nome = p.getName();
ks = java.security.KeyStore.getInstance(TpCert);
if (TpCert.equals("A1"))
ks.load(new java.io.FileInputStream(CaminhoCfg), senha.toCharArray());
else
ks.load(null,senha.toCharArray());
System.setProperty("javax.net.ssl.keyStoreType",TpCert);
System.setProperty("javax.net.ssl.keyStorePassword", senha);
System.setProperty("javax.net.ssl.trustStoreType","JKS");
System.setProperty("javax.net.ssl.trustStore","C:/TSCerts");
System.setProperty("javax.net.ssl.trustStorePassword", "123456");
Security.removeProvider(Nome); // ----> ERRO
} catch (Exception e) {
e.printStackTrace();
}
}[/code]
Escrevi elas no NetBeans só pra postar aki…
Esse código não me dá erro se tirada a linha removeProvider(nome)
Se alguem puder me ajudar, fico grato…
Obrigado…
Abraço…