Instalação JasperReports · 10 min read · Oct 10, 2025

Como Instalar JasperReports com Proxy Nginx no Ubuntu 22.04

JasperReports é um motor de relatórios e biblioteca de classes Java gratuito e de código aberto que ajuda os desenvolvedores a adicionar capacidades de relatórios às suas aplicações. É um servidor de relatórios autônomo e embutido que fornece funcionalidade de relatórios e análises. Com JasperReports, você pode gerar relatórios profissionais, incluindo imagens, gráficos e tabelas. Esta ferramenta também ajuda você a escrever conteúdo rico na tela, impressora e em vários formatos de arquivo, incluindo HTML, PDF, XLS, RTF, CSV, XML, ODT e TXT.

Neste post, mostraremos como instalar o JasperReports Server no Ubuntu 22.04.

Pré-requisitos

  • Um servidor rodando Ubuntu 22.04.
  • Um nome de domínio válido apontado para o IP do seu servidor.
  • Uma senha de root configurada no servidor.

Instalar Java JDK

JasperReports é baseado em Java, então você precisará instalar o Java JDK no seu servidor. Você pode instalá-lo executando o seguinte comando:

apt install default-jdk unzip wget -y

Uma vez que o Java esteja instalado, você pode verificar a versão do Java usando o seguinte comando:

java --version

Você obterá a versão do Java na seguinte saída:

openjdk 11.0.16 2022-07-19
OpenJDK Runtime Environment (build 11.0.16+8-post-Ubuntu-0ubuntu122.04)
OpenJDK 64-Bit Server VM (build 11.0.16+8-post-Ubuntu-0ubuntu122.04, mixed mode, sharing)

Instalar e Configurar o Banco de Dados MariaDB

Você também precisará instalar o servidor de banco de dados MariaDB no seu sistema. Você pode instalá-lo com o seguinte comando:

apt install mariadb-server -y

Uma vez que o MariaDB esteja instalado, faça login no MariaDB com o seguinte comando:

mysql

Uma vez logado, crie um usuário e defina uma senha com o seguinte comando:

MariaDB [(none)]> grant all on *.* to master@localhost identified by 'password';

Em seguida, limpe os privilégios e saia do shell do MariaDB com o seguinte comando:

MariaDB [(none)]> flush privileges;  
MariaDB [(none)]> exit;

Instalar o Servidor Tomcat

JasperReports roda no servidor Tomcat. Portanto, você precisará instalá-lo no seu servidor.

Primeiro, crie um usuário e grupo dedicados para o Tomcat usando o seguinte comando:

groupadd tomcat  
useradd -s /bin/bash -g tomcat -d /opt/tomcat tomcat

Em seguida, crie um diretório Tomcat com o seguinte comando:

mkdir /opt/tomcat

Em seguida, baixe o Tomcat 8 do site oficial usando o seguinte comando:

wget https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.82/bin/apache-tomcat-8.5.82.tar.gz

Em seguida, extraia o arquivo baixado para o diretório /opt/tomcat:

tar -xzvf apache-tomcat-8.5.82.tar.gz -C /opt/tomcat --strip-components=1

Em seguida, defina as permissões e a propriedade adequadas para o diretório Tomcat:

chown -R tomcat: /opt/tomcat  
sh -c 'chmod +x /opt/tomcat/bin/*.sh'

Criar um Arquivo de Serviço Systemd para o Tomcat

Em seguida, você precisará criar um arquivo de serviço systemd para gerenciar o serviço Tomcat. Você pode criá-lo com o seguinte comando:

nano /etc/systemd/system/tomcat.service

Adicione as seguintes linhas:

[Unit]
Description=Tomcat webs servlet container
After=network.target

[Service]
Type=forking

User=tomcat
Group=tomcat
RestartSec=10
Restart=always 
Environment="JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64"
Environment="JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom"

Environment="CATALINA_BASE=/opt/tomcat"
Environment="CATALINA_HOME=/opt/tomcat"
Environment="CATALINA_PID=/opt/tomcat/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms1024M -Xmx2048M -server -XX:+UseParallelGC"

ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh

[Install]
WantedBy=multi-user.target

Salve e feche o arquivo, então recarregue o daemon do systemd para aplicar as mudanças:

systemctl daemon-reload

Em seguida, inicie o serviço Tomcat com o seguinte comando:

systemctl start tomcat

Você também pode verificar o status do serviço Tomcat com o seguinte comando:

systemctl status tomcat

Você obterá a seguinte saída:

? tomcat.service - Tomcat webs servlet container
     Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: enabled)
     Active: active (running) since Sun 2022-09-04 06:06:39 UTC; 6s ago
    Process: 6867 ExecStart=/opt/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS)
   Main PID: 6874 (java)
      Tasks: 29 (limit: 4579)
     Memory: 118.4M
        CPU: 4.427s
     CGroup: /system.slice/tomcat.service
             ??6874 /usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties -Djav>

Sep 04 06:06:39 ubuntu2204 systemd[1]: Starting Tomcat webs servlet container...
Sep 04 06:06:39 ubuntu2204 startup.sh[6867]: Tomcat started.
Sep 04 06:06:39 ubuntu2204 systemd[1]: Started Tomcat webs servlet container.

Instalar e Configurar JasperReports

Primeiro, mude o usuário para Tomcat e baixe o arquivo JasperReports com o seguinte comando:

su - tomcat  
wget https://sourceforge.net/projects/jasperserver/files/JasperServer/JasperReports%20Server%20Community%20edition%208.0.0/TIB_js-jrs-cp_8.0.0_bin.zip

Uma vez que o download esteja completo, descompacte o arquivo baixado com o seguinte comando:

unzip TIB_js-jrs-cp_8.0.0_bin.zip

Em seguida, copie o arquivo de propriedades do MySQL com o seguinte comando:

cp jasperreports-server-cp-8.0.0-bin/buildomatic/sample_conf/mysql_master.properties jasperreports-server-cp-8.0.0-bin/buildomatic/default_master.properties

Em seguida, edite o arquivo de propriedades do MySQL usando o seguinte comando:

nano jasperreports-server-cp-8.0.0-bin/buildomatic/default_master.properties

Defina seu caminho do Tomcat e os detalhes de configuração do banco de dados conforme mostrado abaixo:

CATALINA_HOME = /opt/tomcat
CATALINA_BASE = /opt/tomcat

dbHost=localhost
dbUsername=master
dbPassword=password
encrypt = true

Salve e feche o arquivo, então instale o JasperReports com o seguinte comando:

cd jasperreports-server-cp-8.0.0-bin/buildomatic/  
./js-install-ce.sh

Uma vez que a instalação esteja completa, você obterá a seguinte saída:

     [echo] Found Groovy in import lib directory

deploy-webapp-datasource-configs:
     [echo]  --- (app-server.xml:deploy-webapp-datasource-configs) --- 
     [echo]  jsEdition     = ce
     [echo]  warFileDistSourceDir = /opt/tomcat/jasperreports-server-cp-8.0.0-bin/buildomatic/../jasperserver.war
     [echo]  warTargetDir  = /opt/tomcat/webapps/jasperserver
     [echo]  webAppName    = jasperserver
     [echo]  webAppNameCE  = jasperserver
     [echo]  webAppNamePro = jasperserver-pro
     [echo]  webAppNameSrc = jasperserver 
     [echo]  webAppNameDel = jasperserver, warTargetDirDel = /opt/tomcat/webapps/jasperserver
     [copy] Copying 9 files to /opt/tomcat/webapps/jasperserver

scalableAdhoc-refinement:

deploy-webapp-ce:

install-normal-ce:
     [echo] Installation successfully completed!

BUILD SUCCESSFUL
Total time: 1 minute 26 seconds
Checking Ant return code: OK
----------------------------------------------------------------------

Em seguida, edite o arquivo de configuração de política do Tomcat:

nano /opt/tomcat/conf/catalina.policy

Adicione as seguintes linhas:

grant codeBase "file:/groovy/script" {
    permission java.io.FilePermission "${catalina.home}${file.separator}webapps${file.separator}
jasperserver-pro${file.separator}WEB-INF${file.separator}classes${file.separator}-", "read";
    permission java.io.FilePermission "${catalina.home}${file.separator}webapps${file.separator}
jasperserver-pro${file.separator}WEB-INF${file.separator}lib${file.separator}*", "read";
    permission java.util.PropertyPermission "groovy.use.classvalue", "read";
};

Salve e feche o arquivo, então edite o arquivo de configuração da Aplicação:

nano /opt/tomcat/webapps/jasperserver/WEB-INF/applicationContext.xml

Adicione as seguintes linhas:




    
        
        
    
    
        
        
    


Salve e feche o arquivo, então saia do usuário Tomcat:

exit

Em seguida, reinicie o serviço Tomcat para aplicar as mudanças.

systemctl restart tomcat

Acessar a Interface Web do JasperReports

Neste ponto, o JasperReports está instalado e configurado. Você pode agora acessá-lo usando a URL http://YOUR_SERVER_IP_ADDRESS:8080/jasperserver/. Você deve ver a página de login do JasperReports:

Login do Jasper

Forneça o nome de usuário: jasperadmin e senha: jasperadmin e clique no botão Login. Você deve ver o painel do JasperReports na página seguinte:

Painel do JasperReports

Configurar o Nginx como um Proxy Reverso para o JasperReports

Primeiro, instale o pacote do servidor web Nginx com o seguinte comando:

apt install nginx

Em seguida, crie um arquivo de configuração de host virtual do Nginx com o seguinte comando:

nano /etc/nginx/conf.d/jasperreports.conf

Adicione as seguintes configurações:

upstream tomcat {
    server 127.0.0.1:8080 weight=100 max_fails=5 fail_timeout=5;
    }

server {
    server_name jasper.example.com;

location = / {
    return 301 http://jasper.example.com/jasperserver/;
    }

location / {
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Server $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://tomcat/;
    }
}

Salve e feche o arquivo, então verifique a configuração do Nginx:

ginx -t

Você obterá a seguinte saída:

ginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Em seguida, recarregue o serviço Nginx para aplicar as mudanças de configuração:

systemctl restart nginx

Você pode verificar o status do Nginx usando o seguinte comando:

systemctl status nginx

Você deve ver a seguinte saída:

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2022-09-04 14:51:10 UTC; 7s ago
       Docs: man:nginx(8)
    Process: 7644 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 7645 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 7646 (nginx)
      Tasks: 3 (limit: 4579)
     Memory: 3.3M
        CPU: 45ms
     CGroup: /system.slice/nginx.service
             ??7646 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
             ??7647 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "```

## Conclusão

Neste post, você aprendeu como instalar o JasperReports no Ubuntu 22.04. Você também aprendeu como configurar o Nginx como um proxy reverso para o JasperReports. Agora você pode usar esta ferramenta para gerar e incorporar relatórios em aplicações Java ou não-Java.
Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.