Configuring the applications with JavaMonitor
Before adding the application into JavaMonitor, you have to copy the applications on the deployment server. You can use any tools that you usually use to copy files on the remote server (scp, rsync, CyberDuck, etc.). Usually you need to copy the application in the following remote directory:
- /Library/WebObjects/Applications (on OS X)
- /opt/Local/Library/WebObjects/Applications (on other UNIX systems than OS X, like Linux, BSD or Solaris)
Copy the BlogRest-Application.tar.gz archive into the correct directory from the above list and uncompressed it (tar zxf BlogRest-Application.tar.gz). Doing this command will result in a new directory called BlogRest.woa.
One last step to do for the application. Usually, the application will run with the appserver user and the appserveradm group. You need to make sure that either the group or the user can run the application. The best way to do this is to change the group of the files to be appserveradm. Your user on the deployment server should also be part of that group. To change the group:
chgrp -R appserveradm BlogRest.woa
You also need to install the Web server resources to a different location. Why is that? Because it's better to serve static resources like images and CSS from the Web server software (Apache, IIS, etc.) than from the Web application to get better performance and caching.
Usually, the Web server resources goes to:
- /Library/WebServer/Documents/WebObjects (on OS X)
- /opt/Local/Library/WebServer/Documents/WebObjects (on other UNIX systems than OS X, like Linux, BSD or Solaris)
Copy the BlogRest-WebServerResources.tar.gz archive into the correct directory from the above list and uncompressed it (tar zxf BlogRest-WebServerResources.tar.gz). Doing this command will result in a new directory called BlogRest.woa.
Everything on the file system is ok, the next step is to add the application to JavaMonitor. If the development tools have been installed correctly, JavaMonitor will run on port 56789 on your deployment server. For example, if the DNS name of your deployment server is my.host.com, the URL will be http://my.host.com:56789Image Added
After the Add Application Named label, enter BlogRest into the text field and click Add Application.
You will get to a page where you need to specific the path to the launch script inside the application bundle. If the development server is on OS X, the path will be:
Put that path in the text field next to the MacOSX label.
On other UNIXs, the path is:
Put that path in the text field next to the Unix label.
It would also be useful to log problems to a log file. For now, we will put the log into /tmp. That means that the log will be lost when you reboot the server or if you have tools like WebMin that cleans /tmp every day, but for now it would do the job.
To specific the path to the log file, go to the Output Path section and enter /tmp in the text field next to MacOSX (if your deployment box is on OS X) or next to Unix (if your development is UNIX but not OS X).
The next step is to click on the Push All button. Now, we can add instances of the application. To do so, click on the Detail View link.
You will see a section saying _Add: 1 instance(s) on host: _. Click the Add button. That will add one instance of the application. It's possible to run multiple instances of an application, mainly to load balance requests and also to have other working instances in case an instance is going AWOL. But for now, running one instance is enough.
If the application was started, a link on the application name will appear after 30 seconds in JavaMonitor. If a link don't appear after a minute and the status is still STOP, something is wrong. Check the log that was created in /tmp (the log should be /tmp/WOCommunity-1) to check for any errors.
If the log don't even exist, 99% of the time, the problem is file permissions. Make sure that the launch script for the application (BlogRest.woa/BlogRest) is accessible for the appserver user. If the file permissions are ok, you can launch the script manually with the appserver user by doing:
On OS X:
sudo su - appserver cd /Library/WebServer/Documents/WebObjects/BlogRest.woa/ ./BlogRest
On other UNIXs:
sudo su - appserver cd /opt/Local/Library/WebServer/Documents/WebObjects/BlogRest.woa/ ./BlogRest
If the application can start from the command line, it should start by the development tools too. If you see errors when launching the application by command line, fix them and try to launch it by command line again.