Site icon CentLinux

How to install GlassFish Server on RHEL 8

Share on Social Media

Learn how to install GlassFish Server on RHEL 8 with this step-by-step guide. Set up a robust Java EE application server on your Red Hat Enterprise Linux system efficiently. #centlinux #linux #glassfish

What is GlassFish Server?

GlassFish Server is an open-source application server that is designed for deploying and managing Java EE (Enterprise Edition) applications. It is developed by the Eclipse Foundation and was originally created by Sun Microsystems. GlassFish provides a robust and scalable platform for building enterprise-level applications, offering a variety of features that support the full Java EE specification.

Key Features of GlassFish Server

GlassFish Server is widely used in enterprise environments for hosting large-scale, mission-critical applications due to its compliance with Java EE standards, rich feature set, and scalability.

Glassfish Server vs Tomcat

GlassFish Server and Apache Tomcat are both popular choices for Java application deployment, but they serve different purposes and offer distinct features. Here’s a comparison to help you understand their differences and choose the right one for your needs:

GlassFish Server

Overview:

Key Features:

Use Cases:

Apache Tomcat

Overview:

Key Features:

Use Cases:

Summary

Choosing Between GlassFish and Tomcat:

In essence, the choice between GlassFish and Tomcat depends on the specific needs of your application and the level of Java EE support required.

Recommended Training: Java Masterclass 2025: 130+ Hours of Expert Lessons from Tim Buchalka

Environment Specification

We are using a minimal RHEL 8 virtual machine with following specifications.

Read Also: How to install Payara Server on CentOS 7

Update Linux Software Packages

By using a SSH client, connect with glassfish-01.centlinux.com as root user.

Build cache of your enabled yum repositories.

dnf makecache

Execute following dnf command to update installed software packages in you Linux server.

dnf update -y

If the above command updates your Linux Kernel then you should reboot your Linux operating system with the new Kernel.

reboot

After installation and reboot, verify the Linux operating system and Linux Kernel versions.

cat /etc/redhat-release
uname -r

Output:

Red Hat Enterprise Linux release 8.5 (Ootpa)
4.18.0-348.7.1.el8_5.x86_64

Install GlassFish Prerequisites

You are required wget and unzip commands to download and extract GlassFish installation files.

Therefore, install wget and unzip now by using dnf command.

dnf install -y wget unzip

Eclipse GlassFish Server 6.2 requires Java JDK 11.

You can either install Oracle JDK or use OpenJDK instead.

Both works fine for Eclipse GlassFish Server 6.2.

Here, we are installing OpenJDK 11 from default Red Hat repositories.

dnf install -y java-11-openjdk

After successful installation of Java Development Kit (JDK), verify the version of Java by using following command.

java -version

Output:

openjdk version "11.0.13" 2021-10-19 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.13+8-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.13+8-LTS, mixed mode, sharing)

Create Linux User and Group

Create a Linux user to own GlassFish software and processes.

useradd -s /sbin/nologin glassfish

Install GlassFish Server on RHEL 8

You can download GlassFish Server from their Official website.

Glassfish Server Downloads

Copy the URL from the above download page and then execute following wget command at Linux CLI to download GlassFish software.

wget https://www.eclipse.org/downloads/download.php?file=/ee4j/glassfish/glassfish-6.2.3.zip -O ~/glassfish-6.2.3.zip

After successful download, extract the downloaded file by using unzip command.

unzip -d /opt/ glassfish-6.2.3.zip

Change the ownership of GlassFish software by executing following Linux command.

chown -R glassfish:glassfish /opt/glassfish6/

Create Systemd Service Unit

To configure autostart of Eclipse GlassFish server, you need to create a Systemd service unit.

Use vim text editor to create a Systemd service unit as follows.

vi /usr/lib/systemd/system/glassfish.service

Add following lines in this file.

[Unit]
Description = GlassFish Server v6.2
After = syslog.target network.target

[Service]
User = glassfish
ExecStart = /usr/bin/java -jar /opt/glassfish6/glassfish/lib/client/appserver-cli.jar start-domain
ExecStop = /usr/bin/java -jar /opt/glassfish6/glassfish/lib/client/appserver-cli.jar stop-domain
ExecReload = /usr/bin/java -jar /opt/glassfish6/glassfish/lib/client/appserver-cli.jar restart-domain
Type = forking

[Install]
WantedBy = multi-user.target

Enable and start GlassFish service.

systemctl enable --now glassfish.service

Verify the status of GlassFish service.

systemctl status glassfish.service

Output:

● glassfish.service - GlassFish Server v6.2
Loaded: loaded (/usr/lib/systemd/system/glassfish.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2021-12-21 14:43:23 EST; 11s ago
Process: 3149 ExecStart=/usr/bin/java -jar /opt/glassfish6/glassfish/lib/client/appserver-cli.jar start-domain (code=ex>
Main PID: 3168 (java)
Tasks: 100 (limit: 12267)
Memory: 335.3M
CGroup: /system.slice/glassfish.service
└─3168 /usr/lib/jvm/java-11-openjdk-11.0.13.0.8-4.el8_5.x86_64/bin/java -cp /opt/glassfish6/glassfish/modules/>

Dec 21 14:43:12 glassfish-01.centlinux.com systemd[1]: Starting GlassFish Server v6.2...
Dec 21 14:43:22 glassfish-01.centlinux.com java[3149]: Waiting for domain1 to start .........
Dec 21 14:43:22 glassfish-01.centlinux.com java[3149]: Successfully started the domain : domain1
Dec 21 14:43:22 glassfish-01.centlinux.com java[3149]: domain Location: /opt/glassfish6/glassfish/domains/domain1
Dec 21 14:43:22 glassfish-01.centlinux.com java[3149]: Log File: /opt/glassfish6/glassfish/domains/domain1/logs/server.log
Dec 21 14:43:22 glassfish-01.centlinux.com java[3149]: Admin Port: 4848
Dec 21 14:43:22 glassfish-01.centlinux.com java[3149]: Command start-domain executed successfully.
Dec 21 14:43:23 glassfish-01.centlinux.com systemd[1]: Started GlassFish Server v6.2.

Configure Linux Firewall

Eclipse GlassFish Server uses following service ports.

Therefore, allow these ports in Linux Firewall to make GlassFish Server accessible across the network.

firewall-cmd --permanent --add-port={4848,8080,8181}/tcp
firewall-cmd --reload

Set GlassFish Admin Password

Add GlassFish binaries in PATH environment variable, to make them executable from any path.

sed -i 's/^PATH=*/PATH=/opt/glassfish6/bin:/g' ~/.bash_profile
source ~/.bash_profile

Note: Default password for admin user is blank.

Use asadmin command and set a password for GlassFish Admin user.

asadmin --port 4848 change-admin-password

Output:

Enter admin user name [default: admin]>
Enter the admin password>
Enter the new admin password>
Enter the new admin password again>
Command change-admin-password executed successfully.

Configure HTTPS for GlassFish Server

By default, Glassfish Admin Console is running as a clear text HTTP service. Run following command to enable secure administration console.

asadmin --host glassfish-01.centlinux.com --port 4848 enable-secure-admin

Output:

Enter admin user name>  admin
Enter admin password for user "admin">
You must restart all running servers for the change in secure admin to take effect.
Command enable-secure-admin executed successfully.

Restart GlassFish server to apply changes.

systemctl restart glassfish.service

Browse URL https://glassfish-01.centlinux.com:4848/ from a client’s browser. You have to ignore certificate warning and add exception in your browser.

GlassFish Server Login

Login as Admin user with password, that we have set in previous steps.

GlassFish – Common Tasks

You have successfully login to Glassfish Admin Console.

Now, Browse URLs http://glassfish-01.centlinux.com/ and https://glassfish-01.centlinux.com/ from a client’s browser.

Both URLs will bring you to the same page. The only difference is that, former will serve you a clear text HTTP version, however the later will serve an encrypted HTTPS version of the same web page.

GlassFish Server Status

Final Thoughts

Installing GlassFish Server on RHEL 8 can be straightforward if you follow the right steps. This guide provides a comprehensive approach to get your server up and running smoothly. However, if you encounter any issues or prefer professional assistance, I’m here to help.

Optimize your cloud infrastructure and secure your servers with my AWS and Linux administration services. Let’s ensure your systems run smoothly. Connect with me on Fiverr now!

Exit mobile version