JasperReports es una herramienta de informes Java de código abierto, un servidor de informes independiente e integrable. JasperReports es una biblioteca de clases de Java, los desarrolladores de Java que necesitan agregar capacidades de generación de informes a sus aplicaciones utilizan esta herramienta. Proporciona informes y análisis y es capaz de generar informes profesionales que incluyen imágenes, tablas y gráficos. Algunas de las funciones principales de JasperReports incluyen:
- Capacidades de exportación
- Múltiples fuentes de datos
- Múltiples formas de presentar datos
- Múltiples formas de suministrar datos
- Subinformes
- Marcas de agua
En este tutorial, le mostraremos cómo instalar el servidor Jasper Reports en Ubuntu 20.04.
Requisitos
- Ubuntu 20.04 con al menos 4 GB de RAM
- Acceso raíz SSH o un usuario normal del sistema con privilegios sudo
Paso 1. Iniciar sesión en el servidor
Primero, inicie sesión en su servidor Ubuntu 20.04 a través de SSH como usuario raíz:
ssh root@IP_Address -p Port_number
Deberá reemplazar 'IP_Address' y 'Port_number' con la dirección IP y el número de puerto SSH respectivos de su servidor. Además, reemplace 'root' con el nombre de usuario del usuario del sistema con privilegios sudo.
Puede comprobar si tiene instalada la versión adecuada de Debian en su servidor con el siguiente comando:
$ lsb_release -a
Deberías obtener este resultado:
No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.3 LTS Release: 20.04 Codename: focal
Antes de comenzar, debe asegurarse de que todos los paquetes del sistema operativo Ubuntu instalados en el servidor estén actualizados. Puede hacerlo ejecutando los siguientes comandos:
$ sudo apt update -y $ sudo apt upgrade -y
Paso 2. Instalar dependencias
Para instalar Jasper Reports para un servidor de producción, lo instalaremos manualmente en lugar de usar el instalador. Para continuar con esto, debemos tener al menos la versión 8 de Java para poder ejecutar Tomcat 9, que instalaremos en el siguiente paso. Ejecutemos el siguiente comando para instalar la versión 11 de JDK predeterminada, que está disponible en los repositorios integrados de Ubuntu 20.04 usando el siguiente comando:
$ sudo apt install default-jdk unzip wget -y
Paso 3. Crear un usuario del sistema
No se recomienda ejecutar Tomcat como root, por lo que, por motivos de seguridad, crearemos un nuevo usuario del sistema para ejecutar Tomcat.
$ sudo useradd -r tomcat -m -d /opt/tomcat --shell /bin/bash
Verifique la ruta de inicio de Tomcat ejecutando este comando:
Paso 4. Instalar MariaDB
A continuación, instalaremos el servidor MariaDB desde el repositorio. Para hacer esto, simplemente ejecute el siguiente comando:
$ sudo apt install mariadb-server
MariaDB se ejecutará tras la instalación, ahora vamos a crear un usuario de MySQL con todos los privilegios.
MariaDB [(none)]> grant all on *.* to master@localhost identified by 'm0d1fyth15'; MariaDB [(none)]> flush privileges;
Paso 5. Instalar Tomcat
En este paso, instalaremos Tomcat y lo ejecutaremos con el usuario 'tomcat' que creamos anteriormente. Al escribir este tutorial, el último Tomcat estable para descargar es la versión 9.0.62. Puede ir a https://tomcat.apache.org/download-90.cgi y comprobar si publican la versión más reciente. Para continuar con la instalación, primero descarguemos el archivo de distribución binaria.
$ su - tomcat $ wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.62/bin/apache-tomcat-9.0.62.tar.gz -O tomcat-9.0.62.tar.gz
Tomcat se instalará en el directorio /opt/tomcat, el directorio en sí ya se creó cuando estábamos creando el usuario 'tomcat' en el paso anterior. Extraigamos el archivo descargado ahora.
$ tar -xzvf tomcat-9.0.62.tar.gz -C /opt/tomcat --strip-components=1
Ahora, salga del usuario 'tomcat' y regrese a la raíz o a su usuario sudo.
$ exit
Vamos a crear un archivo de servicio systemd para Tomcat.
$ sudo nano /etc/systemd/system/tomcat.service
Pegue lo siguiente en el archivo de servicio systemd, luego guárdelo.
[Unit] Description=Apache Tomcat After=network.target [Service] Type=forking User=tomcat Group=tomcat Environment=JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64 Environment=CATALINA_PID=/opt/tomcat/tomcat.pid Environment=CATALINA_HOME=/opt/tomcat Environment=CATALINA_BASE=/opt/tomcat Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC" ExecStart=/opt/tomcat/bin/startup.sh ExecStop=/opt/tomcat/bin/shutdown.sh ExecReload=/bin/kill $MAINPID RemainAfterExit=yes [Install] WantedBy=multi-user.target
Guarde el archivo y vuelva a cargar systemd.
$ sudo systemctl daemon-reload
No vamos a iniciar Tomcat ahora, así que no ejecutemos Tomcat en este momento.
Paso 6. Descargue e implemente JasperReports
En este paso, descargaremos el archivo comprimido del servidor Jasper Reports y lo instalaremos manualmente. Al escribir este artículo, la última versión disponible es la 8.0.0. Puede verificar si tienen la versión más reciente en https://sourceforge.net/projects/jasperserver/files/JasperServer/.
$ 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/download -O jasperreports_8.0.0.zip
Una vez descargado, podemos extraerlo directamente.
$ unzip jasperreports_8.0.0.zip
El servidor Jasper Reports admite servidores PostgreSQL, MySQL, Oracle, DB2 y SQL. En este artículo, vamos a usar MySQL (MariaDB) y ya lo instalamos. Para continuar con el archivo de configuración de Jasper Report, primero copiemos el archivo de configuración de muestra.
Copiemos /opt/jasperreports-server-cp-8.0.0-bin/buildomatic/sampe-conf/mysql.master_properties a buildomatic como default_master.properties
$ 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
En este archivo, necesitamos establecer o modificar la configuración existente con los siguientes valores.
CATALINA_HOME = /opt/tomcat CATALINA_BASE = /opt/tomcat dbHost=localhost dbUsername=master dbPassword=m0d1fyth15 encrypt = true
Guarde el archivo y luego salga. Asegúrese de que el usuario y la contraseña de la base de datos MySQL sean correctos. Debería verse así.
A continuación, ingresemos al directorio buildomatic y ejecutemos el archivo ejecutable js-install-ce.sh. Antes de ejecutar este archivo ejecutable, asegúrese de que Tomcat NO se esté ejecutando.
$ cd jasperreports-server-cp-8.0.0-bin/buildomatic/ $ ./js-install-ce.sh
Esto creará bases de datos y desplegará el jasperserver en Tomcat.
Luego, editemos el archivo /opt/tomcat/conf/catalina.policy.
$ nano /opt/tomcat/conf/catalina.policy
Inserte lo siguiente en el archivo.
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"; };
Guarde el archivo y luego salga.
Luego, también necesitamos editar el archivo applicationContext.xml.
$ nano /opt/tomcat/webapps/jasperserver/WEB-INF/applicationContext.xml
Insértelos en la lista de proveedores de dominio de protección de informes.
<bean id="reportsProtectionDomainProvider" class="com.jaspersoft.jasperserver.api. engine.jasperreports.util.PermissionsListProtectionDomainProvider"> <property name="permissions"> <list> <bean class="java.io.FilePermission"> <constructor-arg value="${catalina.home}${file.separator}webapps ${file.separator}jasperserver-pro${file.separator} WEB-INF${file.separator}classes${file.separator}-"/> <constructor-arg value="read"/> </bean> <bean class="java.io.FilePermission"> <constructor-arg value="${catalina.home}${file.separator}webapps ${file.separator}jasperserver-pro${file.separator}WEB-INF ${file.separator}lib${file.separator}*"/> <constructor-arg value="read"/> </bean> </list> </property> </bean>
Debería verse como en la imagen de abajo.
Una vez completado, puede iniciar Tomcat y esperar unos momentos hasta que todo esté funcionando.
$ sudo systemctl start tomcat
Luego, puede navegar a http://YOUR_SERVER_IP_ADDRESS:8080/jasperserver/ para acceder a JasperReports Server utilizando las credenciales de inicio de sesión predeterminadas.
username: jasperadmin password: jasperadmin
Paso 7. Configurar el proxy inverso
Dado que Tomcat se ejecuta en su puerto predeterminado 8080, debemos configurar un proxy inverso para poder acceder a él en el puerto 80 o 443. En este paso, instalaremos nginx y lo configuraremos como un proxy inverso para Jasper Reports. servidor.
$ sudo apt install nginx
En Ubuntu 20.04, nginx comenzará a ejecutarse tras la instalación. Ahora es el momento de crear un bloque de servidor para nuestro servidor Jasper Reports.
$ sudo nano /etc/nginx/conf.d/jasperreports.conf
Inserte la siguiente configuración en el archivo.
upstream tomcat { server 127.0.0.1:8080 weight=100 max_fails=5 fail_timeout=5; } server { server_name jasperserver.rosehosting.com; location = / { return 301 http://jasperserver.rosehosting.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/; } }
Ahora, reinicie el servicio nginx. No olvide probar la configuración antes de reiniciarla.
$ sudo nginx -t
Si no se encuentra ningún error, estamos listos para reiniciarlo.
$ sudo systemctl restart nginx
Paso 8. Instalar certificado SSL
Este paso es opcional pero muy recomendable completarlo. En esta era moderna, los sitios web deben ejecutarse en HTTPS en lugar de HTTP. Los siguientes pasos le mostrarán cómo instalar certificados SSL de Let's Encrypt.
$ sudo apt install certbot python3-certbot-nginx -y
Una vez instalado, edite el bloque del servidor nginx del sitio web de Jasper Report y reemplace server_name con su dominio o subdominio real apuntando a la dirección IP de su servidor. Asegúrese de que el registro DNS del dominio o subdominio ya apunte a su servidor antes de emitir el certificado SSL.
Si realiza cambios en el bloque del servidor nginx, asegúrese de probar la configuración de nginx antes de reiniciarlo:
$ sudo nginx -t $ sudo systemctl restart nginx
Ahora, estamos listos para instalar el certificado SSL, ejecute este comando:
$ sudo certbot
Deberá proporcionar su dirección de correo electrónico, aceptar los TOS de Let's Encrypt y si desea compartir su dirección de correo electrónico con Electronic Frontier Foundation o no. Luego, debe elegir para qué nombres desea activar HTTPS. Elija su sitio web de Django escribiendo el número y presionando ENTER. Let's encrypt instalará el certificado y le preguntará si desea configurar la redirección de HTTP a HTTPS o no, puede elegir redirigir y luego certbot creará la redirección y recargará Nginx si todo está bien.
Ahora, debería poder acceder a su sitio web de Jasper Reports en modo HTTPS en https://yourjasperreportdomain.com.
¡Felicidades! Ha instalado correctamente Jasper Reports Server en Ubuntu 20.04.
Por supuesto, si usted es uno de nuestros clientes de Ubuntu Hosting, no tiene que instalar Jasper Reports Server en Ubuntu 20.04 por su cuenta, simplemente pregúntele a nuestros administradores, siéntese y relájese. Nuestros administradores le brindarán Jasper Reports Server en Ubuntu 20.04 de inmediato, junto con muchas optimizaciones útiles que podemos hacer por usted. Instalar Jasper Reports Server en Ubuntu 20.04 no se trata solo del trabajo, también podemos ayudarlo a optimizar su servidor Jasper Reports si tiene un VPS administrado con nosotros.
Si le gustó esta publicación sobre cómo instalar Jasper Reports Server en Ubuntu 20.04, compártala con sus amigos en las redes sociales usando los botones de compartir a continuación, o simplemente deje un comentario en la sección de comentarios. Gracias.