Blog

Configuração e Erros do Java

O primeiro ponto a ser observado é que a versão do Java deve ser 1.8 mais recente (final acima de 300) ou Java Zulu 1.7 ou Zulu 1.8, veja no tópico “Configurando o Java do Tomcat/Webrun” como configurar a versão do Java.

Os erros mais comuns são:

  • Erro de protocolo não suportado;
  • Erro de tamanho da mensagem de Handshake.

Possíveis soluções para essas duas situações são apresentadas a seguir. Vale ressaltar que as instruções aqui descritas são mera cortesia, use por conta e risco.

IMPORTANTE: O suporte ao Java, instalação, configuração, atualização… Não faz parte do suporte às APIs, se necessário solicite suporte adicional. Os custos e disponibilidade de agenda desse serviço deve ser verificado no momento da contratação.

Erro de protocolo não suportado

Além disso, você deve observar a seguinte configuração quando aparecer um dos erros a seguir:

  • javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
  • javax.net.ssl.SSLHandshakeException: Received fatal alert: protocol_version
  • Connection reset

Abra o arquivo java.security ([pasta do Java]\jre\lib\security\java.security ) no bloco de notas ou similar. Localize e comente (adicionando # no inicio da linha) as 3 linhas a seguir:

jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, \
DH keySize lessThan 1024, EC keySize lessThan 224, 3DES_EDE_CBC, anon, NULL, \
include jdk.disabled.namedCurves

Salve o arquivo e reinicie o Tomcat ou a API no Agente para efetivar a alteração.

Observação: No Linux, a depender da distribuição, esta mesma configuração deve ser feitas em arquivos adicionais no ‘/etc/…’, por exemplo no Red Hat.

Referências

Essas instruções foram tiradas do seguinte vídeo (English):


Erro de tamanho da mensagem de Handshake

O servidor usa criptografia que pode exigir configuração adicional no Java do Webrun/Tomcat. O erro impede a conexão/comunicação e nos logs é retratado com a mensagem:

javax.net.ssl.SSLProtocolException: The size of the handshake message (X) exceeds the maximum allowed size (Y) 

Para efetuar a configuração basta adicionar o parâmetro “jdk.tls.maxHandshakeMessageSize” com o valor “130702” na inicialização da JVM. Ficando a linha completa assim:

 -Djdk.tls.maxHandshakeMessageSize=130702  

Esta configuração é adicionada no final das demais, conforme apontado na imagem a seguir:

Referência