26 June 2013

Getting Started with GlassFish 4


With the recent release of Java EE 7 and GlassFish 4, it's a good time to revisit the basics of GlassFish: from downloading, installing to (un)deploying an application. We also cover the same topics in the first part of our GlassFish Webinar Series
The rest of this post assumes an installation on a Linux environment, preferably RedHat like (Oracle UL, CentOS, etc), as GlassFish 4 is certified for RHEL.

Prerequisites

The most important requirement for GlassFish 4 is Java SE 7. Make sure you have the JDK for release 7 installed.

java -version
> java version "1.7.0_17"

Also verify that JAVA_HOME is set to the correct JDK directory.

echo $JAVA_HOME
> /usr/java/jdk1.7.0_25


The installer also tries to start GlassFish, so if the network ports 4848 and 8080/8081 are not free, this will result in errors. A minimal amount of disk space is required, at most 250 MB should be enough.

Downloading the install files

On the GlassFish 4 download site there are two options available:

1) Zip file
The zip file distribution is the fastest way to get started with GlassFish 4. Just unzip the file and run the asadmin command to start.

wget http://download.java.net/glassfish/4.0/release/glassfish-4.0.zip
unzip -d /opt/oracle/ glassfish-4.0.zip


2) Installer
The installer files are available in multiple flavors, all executing as a graphical installer. The most important distinction with the zip file here is the option of installing only the Java EE Web Profile, which is more lightweight than the full edition, if you only need to run Java Web Applications.

Running the installer for the full edition:
wget http://download.java.net/glassfish/4.0/release/glassfish-4.0-unix.sh
./glassfish-4.0-unix.sh 
or for the web edition
wget http://download.java.net/glassfish/4.0/release/glassfish-4.0-web-unix.sh
./glassfish-4.0-web-unix.sh 

The graphical installer also allows you to create answer files, which can be used to customise port numbers. The graphical installer will run normally, but it will not actually install GlassFish.
Later this answer file is used by the installer in silent-mode.

Creating the answer file:
./glassfish-unix.sh -n <answer_file>
Running in silent mode:
./glassfish-unix.sh -a <answer_file> -s
 
In addition, the graphical installer is downloadable with support for multiple languages.

Important directories

After installing a directory structure will be created in the install location. The following directories are interesting to take a look at:

 <install-dir>/bin/
Location of asadmin and updatetool executables
 <install-dir>/glassfish/bin
Location of glassfish start and stop scripts 
<install-dir>/glassfish/domains/domain1
Root directory for the preconfigured domain
<install-dir>/glassfish/domains/domain1/config
Location for the configuration of the domains 
<install-dir>/glassfish/domains/domain1/logs
Location of server.log 

Starting and stopping the domain

Both installers come with a preconfigured domain named "domain1".  This domain can be controlled using the asadmin tool. Starting the domain on the command-line is done as follows:

cd /opt/oracle/glassfish4/bin/
./asadmin start-domain  

The start-domain command has an optional domain name parameter, but the default is "domain1".

The domains available are listed with the following command:

./asadmin list-domains

Similarly to starting the domain, it can also be stopped with asadmin:

./asadmin stop-domain


Autostart GlassFish on boot

The asadmin tool can also create init.d scripts so that it will be started on boot. This will not restart the server after crashes, but will start up GlassFish when the server is restarted.

./asadmin create-service
/etc/init.d/GlassFish_domain1 start

This creates an init.d script in /etc/init.d/GlassFish_domain1. When the service is started like this, it should also be stopped with the same init.d script.

/etc/init.d/GlassFish_domain1 stop

Opening the Admin Console

After starting the domain, the Admin Console will be available on http://localhost:4848. Initially no login is required.


For the most part, the Admin Console offers the same configuration options as the asadmin tool, but is definitely more user-friendly.

Deploying and undeploying applications

Again, the simplest way to deploy an application is to use the asadmin tool. First download the sample WAR file from the GlassFish website.

wget https://glassfish.java.net/downloads/quickstart/hello.war
./asadmin deploy hello.war


After deploying the application will be available at http://localhost:8080/hello. Take note that this is a different port than the Admin Console.

The applications can be listed an undeployed with asadmin (using the app name, not the WAR):

./asadmin list-applications
./asadmin undeploy hello

The same can be accomplished with the Admin Console in Applications > Deploy. Here you have more customization options, for example setting the context root or enabling precompilation of JSP's.


Running the updatetool

GlassFish comes with the updatetool packaged, or with a stub if it was disabled during installation. This update tool will look for newer versions of GlassFish and apply the updates. It is located in the same directory as asadmin.

<install-dir>/updatetool



On CentOS 6.4 64-bit it does not work out-of-the-box, since a few libraries appear to be missing, so the following error message is displayed:

error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

Install the required packages to run updatetool normally:

sudo yum install libstdc++.so.6 libgtk-x11-2.0.so.0 libXxf86vm.so.1 libSM.so.6 libpk-gtk-module.so libcanberra-gtk-module.so


More information

In our webinar series on GlassFish 4, we'll discuss more advanced topics such as: high availability, monitoring, migration of application. Check the agenda for more information.











If you enjoyed this post, why not subscribe to our feed?


Enter your email address:



5 comments :

  1. muy buena la info

    ReplyDelete
  2. The command line updatetool fails with an exception for me

    ReplyDelete
  3. The Cmd line stops showing null pointer exception ! :(

    ReplyDelete
  4. hello....I am triying to start glassfish server 4 from netbeans 7. but every time its says to use server admin and passwords, i have checked and used admin and asadmin as user and password, but it failed to respond. and next time if i run the server its shows Could not start GlassFish Server: Admihnistrator port is occupied by null. I am just holding my tears, coz no one seems to help me right now on this :( i hope you will help me to resolve this. Thanks a lot.

    ReplyDelete