Problema com encoding nos ambientes de testes x produção

Olá pessoal,
Estou tendo problemas com acentuação no ambiente de produção (Win2008R2 x Glassfish 4.1 x Java1.8.0.60 x Oracle 10G/11G).
Trata-se de aplicação que lê XMLs via WebServices (SOAP), processa algumas regras de negócio e grava nos bancos de dados Oracle dos clientes. Coisa simples, usando JDBC direto, por uma questão de performance (foi o melhor resultado que consegui).
Ocorre que, quando eu testo uma integração via NetBeans, também a partir do ambiente de produção, tudo dá certo (acentuação correta), mas deixo em produção (Glassfish como serviço do Windows), simplesmente não acata o utf-8 e grava o carácter “?” no lugar dos acentos.
Já investiguei diferenças entre as duas situações de uso e também já forcei o encoding nas variáveis e também como propriedade do sistema, mas simplesmente ignora o e efeito é o mesmo: Via NetBeans dá certo e na produção não!

Alguém teria uma dica ?

Obrigado.

1 curtida

Provavelmente em produção o seu encoding default está diferente do de teste. O Windows tem como default o cp 1252, que é latin1. Linux e Mac é UTF-8. Algo você está deixando de forçar, mas acha que está forçando.

Eu escrevi um artigo que talvez possa ajudar: