Environment: APEX Listener 1.1.4, GlassFish 3.1.2.2 OSE Web Profile, Oracle Linux 6.2 64-bit
In this post I will explain how you can upgrade the APEX Listener from version 1.1.3 to version 1.1.4 deployed under GlassFish.
Note: unless you are running a GlassFish cluster, there is no way to upgrade the APEX Listener without interruptions. However, if you plan things well, you can minimize downtime to only a few minutes.
Step 1: download and unzip the new software
Version 1.1.4 of the APEX Listener can be downloaded here. There are no separate 32-bit/64-bit versions or different versions for Windows/Linux. Put the zip file somewhere on the file system of your server and unzip it. Inside the zip file you will find the documentation files and the apex.war file, which contains the source code.
Step 2: modify the web.xml file inside apex.war
Before deploying the new APEX Listener, we will first modify the location of the config file inside the apex.war file. By default, the config file is stored in /tmp, but since this is a temporary file system, you might lose this file after a server reboot and APEX will stop working.
To modify the location of the config file, we need to extract the apex.war file, modify the web.xml file and finally recreate the apex.war file.
First, extract the apex.war file into a new folder by using the Java “jar” utility:
oracle@ol6ora11g02 /u01/app/apex_listener/1.1.4/modified>/u01/app/java/java6/bin/jar xf ../apex.war oracle@ol6ora11g02 /u01/app/apex_listener/1.1.4/modified>ls -la total 32 drwxr-xr-x 8 oracle oinstall 4096 Aug 20 14:45 . drwxr-xr-x 5 oracle oinstall 4096 Aug 20 14:44 .. drwxr-xr-x 2 oracle oinstall 4096 Jun 15 22:04 api drwxr-xr-x 2 oracle oinstall 4096 Jul 13 00:14 ____embedded drwxr-xr-x 2 oracle oinstall 4096 Jul 13 00:19 META-INF drwxr-xr-x 2 oracle oinstall 4096 Jun 15 22:02 resourceTemplates drwxr-xr-x 5 oracle oinstall 4096 Jun 15 22:03 scripts drwxr-xr-x 3 oracle oinstall 4096 Jul 13 00:19 WEB-INF
Next, use a text editor to uncomment and modify the “config.dir” param-value inside the WEB-INF/web.xml file. This is how the first part of my web.xml file looks like:
<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>ApexMod</display-name> <context-param> <param-name>config.dir</param-name> <param-value>/home/oracle/apex_listener/config</param-value> </context-param> <context-param> <param-name>version</param-name> <param-value>1.1.4.195.00.12</param-value> </context-param>
Note that my APEX Listener config file is stored under /home/oracle/apex_listener/config/apex.
Now let’s recreate the apex.war file again using the “jar” utility:
oracle@ol6ora11g02 /u01/app/apex_listener/1.1.4/modified>/u01/app/java/java6/bin/jar cf ../apex.war . oracle@ol6ora11g02 /u01/app/apex_listener/1.1.4/modified>cd .. oracle@ol6ora11g02 /u01/app/apex_listener/1.1.4>ls -la total 20140 drwxr-xr-x 5 oracle oinstall 4096 Aug 20 14:44 . drwxr-xr-x 6 oracle oinstall 4096 Aug 17 11:22 .. -rwxr-x--- 1 oracle oinstall 10719937 Aug 17 11:26 apex_listener.1.1.4.195.00.12.zip -rw-r--r-- 1 oracle oinstall 9839841 Aug 20 15:09 apex.war drwxr-xr-x 5 oracle oinstall 4096 Jul 13 00:20 docs -rw-r--r-- 1 oracle oinstall 2906 Jul 13 00:20 index.htm drwxr-xr-x 4 oracle oinstall 4096 Jul 13 00:20 javadoc -rw-r--r-- 1 oracle oinstall 24890 Jul 13 00:20 license.html drwxr-xr-x 8 oracle oinstall 4096 Aug 20 14:45 modified -rw-r--r-- 1 oracle oinstall 3242 Jul 13 00:20 readme.html oracle@ol6ora11g02 /u01/app/apex_listener/1.1.4>rm -rf modified
Step 3: redeploy the apex.war file under GlassFish
Start up the GlassFish admin console (by default it runs under port 4848), click on “Applications” and then click on “Redeploy” next to the “apex” application (or whatever you called your APEX Listener deployment).
In the next screen, browse to the new “apex.war” file and click on “OK”. This will remove the old APEX Listener and deploy the new version. If everything went fine, click on “Launch” to check if APEX is working fine again. In case of errors, you should check the server.log file for the GlassFish instance where you deployed the APEX Listener.
That’s it! Good luck :-)
Matthias