[Nfe] Bug no System.setProperty("javax.net.ssl.keyStore","...");  XML
Índice dos Fóruns » Frameworks e Bibliotecas brasileiros
Autor Mensagem
farukzahra
Entusiasta Java

Membro desde: 24/08/2006 10:29:15
Mensagens: 23
Offline

Pessoal,

Estou desenvolvendo uma solução para nfe, com certificado A1.

Desenvolvi a solução de acordo com o POST do rafaelbtz :

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

Até ai tudo bem ... funcionou beleza ... mas quando eu mudo em tempo de execução o :



A Vm não muda este parametro e fica com o PFX da empresa antiga (a solução é para multiplas empresas).

E como a minha solução é um outro WS, estou com medo tambem de concorrencia ... dois processos alterando o System.property ...

Alguem mais notou este bug ? Existe outra maneira de passar a chave e o chaveiro para as minhas classes sem ser esta ?

Obrigado

Faruk

This message was edited 1 time. Last update was at 13/04/2010 13:28:26

farukzahra
Entusiasta Java

Membro desde: 24/08/2006 10:29:15
Mensagens: 23
Offline

alguem ?
alves.Felipe
GUJ Ranger
[Avatar]

Membro desde: 21/01/2008 13:45:56
Mensagens: 766
Localização: Curitiba - Pr
Offline

puts.. pelo que eu ja testei aqui.. vc precisa reiniciar a aplicação para setar outro certificado..
mas não fui mais atras tb..
mas sera que não tem como criar um keystore com todos os certificados que vc precisa.. no caso os pfx..?
foi só uma dica.. nunca tentei fazer...

Felipe Alves
[Email]
farukzahra
Entusiasta Java

Membro desde: 24/08/2006 10:29:15
Mensagens: 23
Offline

Sim, qdo eu restarto o tomcat funciona ...

rafaelbtz
Java Ninja
[Avatar]

Membro desde: 29/03/2005 10:53:56
Mensagens: 276
Offline

Não sei disso não mas seu problema eu acho que é sincronização, duas Threads alterando ao mesmo tempo não é ???

O meu é desktop não fica sob o tomcat aqui eu alterei o System.property e não tive problemas (foi só um teste, mas parece q funcionou)...
[Email]
farukzahra
Entusiasta Java

Membro desde: 24/08/2006 10:29:15
Mensagens: 23
Offline

Pior que não ... eu faço uma requisição por vez ...

Eu li na internet que o JSSE altera apenas uma vez o system.property na vm ... no seu caso da certo pq cada vez que você executa o seu programa vc executa uma vm seta a propriedade e o processo morre ... e assim por diante ... já no tomcat é a mesma vm ...

fabiofalci
GUJ Master
[Avatar]

Membro desde: 11/04/2006 09:23:14
Mensagens: 1057
Localização: Porto Alegre - RS
Offline

Quem pega esse valor do System.getProperty?
Isso não pode ser customizado para pegar de um lugar, digamos, menos público em um AS?
[WWW] [MSN] [ICQ]
farukzahra
Entusiasta Java

Membro desde: 24/08/2006 10:29:15
Mensagens: 23
Offline

Aew pessoal , voltei para este projeto e estou com o mesmo bug ... alguem tem alguma luz?
farukzahra
Entusiasta Java

Membro desde: 24/08/2006 10:29:15
Mensagens: 23
Offline

Bom pessoal, consegui resolver este bug ... aparentemente quando setamos um valor no System.property e setamos novamente este valor, a segunda vez não funciona até que a vm morra.

No axis é a mesma coisa ...

Para resolver isso um pessoal fez um extensão do axis :

http://code.google.com/p/axis-ssl/

Eu estou utilizando ela sem problemas ...

É isso.

Faruk
acmedis
JavaBaby

Membro desde: 08/03/2008 19:51:55
Mensagens: 84
Offline

farukzahra, seguinte :

verifiquei o link que vc passou, baixei a lib e adicionei no meu projeto, depois peguei o código de exemplo e adicionei na minha classe. Porem ocorre um erro na linha :

axisConfig.initialize();

não acha esse método.

Você pode me passar mais algumas informações de como usar essa biblioteca.

até mais ...


[Email] [MSN]
farukzahra
Entusiasta Java

Membro desde: 24/08/2006 10:29:15
Mensagens: 23
Offline

Opa,

Crie um objeto :


Faça os Set´s :



E passe o objeto para o Proxy criado automaticamente pelo axis :





This message was edited 1 time. Last update was at 04/10/2010 15:52:32

acmedis
JavaBaby

Membro desde: 08/03/2008 19:51:55
Mensagens: 84
Offline

farukzahra,

agora deu certo criando dessa forma que você passou, porem só faz a comunicação com a primeira consulta.
quando tento fazer uma nova comunicação, sem fechar o sistema, ocorre o seguinte erro :

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: No trusted certificate found
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: No trusted certificate found
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace:javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: No trusted certificate found

Estou fazendo o seguinte teste, mando fazer a comunicação com web service do Paraná, na primeira comunicação tudo ok.
Depois tento fazer a comunicação com web service do RS sem fechar o sistema e da o erro citado acima.

[Email] [MSN]
farukzahra
Entusiasta Java

Membro desde: 24/08/2006 10:29:15
Mensagens: 23
Offline

Você redirecionou seu objeto axis para o ws do RS ?
acmedis
JavaBaby

Membro desde: 08/03/2008 19:51:55
Mensagens: 84
Offline

sim, fiz a todas as configurações no objeto.
Porque cada consulta que faço eu crio o objeto axisConfig, faço as atribuições e depois eu faço ele receber null.
[Email] [MSN]
rafaelbtz
Java Ninja
[Avatar]

Membro desde: 29/03/2005 10:53:56
Mensagens: 276
Offline

Vocês estão falando de NFe versão 1 certo?

Eu uso isso ai na versão 1 também, mas pra versão 2 da NFe eu passei a usar o Axis2 mas ai isso não funcionou mais.

Alguem aqui está implementando isso com a versão 2 da NFe?

Obrigado.

[Email]
 
Índice dos Fóruns » Frameworks e Bibliotecas brasileiros
Ir para:   
Powered by JForum 2.1.8 © JForum Team