Para quem precisa corrigir a hora errada apresentada no Tomcat.
As vezes temos que alterar o fuso horário do sistema Linux para sincronizar com do Java/Tomcat. Assim, os logs do sistema vão casar com o horário do Tomcat/Java. Para isso, verifique em seu sistema qual o fuso-horário com o comando: timedatectl
Local time: Sat 2022-10-15 01:16:48 -03
Universal time: Sat 2022-10-15 04:16:48 UTC
RTC time: Sat 2022-10-15 04:16:48
Time zone: America/Sao_Paulo (-03, -0300)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
a linha Time zone
aponta para o fuso horário do seu sistema
Para obter a lista de zonas de tempo use o comando abaixo:
timedatectl list-timezones
Para filtrar por exemplo uma cidade:
sudo timedatectl list-timezones | grep Mana
ele vai retornar assim:
America/Managua
America/Manaus
Para alterar o fuso-horário, use o comando abaixo para alterar o fuso horário:
exemplo:
Reinicie o Linux para as mudanças serem efetivadas.
usando o comando date, voce vai obter a data e hora atual:
date
Sat Oct 15 01:27:35 -03 2022
Com a hora corrigida no seu sistema, podemos agora dizer ao tomcat qual é o fuso-horário atual:
Va na pasta /opt/ScadaBR/tomcat/bin/
e edite o arquivo catalina.sh
procure pelas linhas abaixo:
# Register custom URL handlers
# Do this here so custom URL handles (specifically 'war:...') can be used in the security policy
JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true -Djava.protocol.handler.pkgs=org.apache.catalina.webresources"
após a palavra $JAVA_OPTS acrescente a String:
-Duser.timezone=America/Manaus
ela deverá ficar assim:
JAVA_OPTS="$JAVA_OPTS -Duser.timezone=America/Manaus -Djava.awt.headless=true -Djava.protocol.handler.pkgs=org.apache.catalina.webresources"
Salve o arquivo e reinicie o tomcat com os comandos:
bash catalina.sh stop
bash catalina.sh start
Verifique agora dentro do ScadaBR o horário corrigido.