Tenho certeza que você também já passou por algum problema com o JasperReports, afinal, ele é em Java e usa o Tomcat…
Recentemente enfrentei um problema curioso, o Tomcat e JasperReports estavam ligados, aparentemente tudo funcionando, mas quando você tenta gerar um PDF dá um erro e nos logs você observa net.sf.jasperreports.engine.util.jrstyledtextparser, inicialmente pensei que poderia ser alguma fonte ausente, depois pensei que fosse algum problema com o jre, depois pensei em chamar um exorcista, por fim, depois de muita pesquisa, descobri que estavam faltando alguns parâmetros na inicialização do Tomcat:
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'
Ok, mas onde esses parâmetros devem ser passados? Então, aqui vem a pegadinha, se você fez como eu e instalou o Tomcat em /opt/ deve ter percebido que dentro do diretório /opt/tomcat/bin/ tem um arquivo chamado startup.sh, para inicializar o Tomcat basta executar este script, certo? Não, errado.
Você pode fazer de várias maneiras, a que funcionou pra mim foi a seguinte:
Crie o arquivo /etc/systemd/system//tomcat.service:
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64
Environment=CATALINA_PID=//opt/tomcat/temp//tomcat.pid
Environment=CATALINA_HOME=//opt/tomcat
Environment=CATALINA_BASE=//opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'
ExecStart=//opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
E a partir de agora inicie o Tomcat com:
sudo systemctl start tomcat
E pare o Tomcat com:
sudo systemctl stop tomcat
Deixe um comentário