Important: You are required to change your passwords used for Gentoo services and set an email address for your Wiki account if you haven't done so. See the full announcement and Wiki email policy change for more information.

Apache Tomcat

From Gentoo Wiki
Jump to: navigation, search
External resources

This guide is about installing Apache Tomcat version 6.0.35-r1 and newer and 7.0.29-r1 and newer. You can find older Gentoo guides at Tomcat Guide and Tomcat 6 Guide. There is a significant change in how Tomcat is configured so make sure you use the correct guide according to the version you are installing.

Installation

To install Tomcat, emerge www-servers/tomcat. By default, only manager and host-manager applications are installed. If you want to install Tomcat documentation and example applications, you have to enable extra-webapps USE flag. The ebuild installs only what is known as Catalina home. Creation of Catalina base is described in next section.

Configuration

Since version 6.0.35-r1 and 7-0-29-r1, Tomcat supports running of multiple instances. This largely affects the way how Tomcat is configured. The preferred way to create and configure Tomcat instances is by using Tomcat instance manager located at /usr/share/tomcat-7/gentoo/tomcat-instance-manager.bash for Tomcat 7 and at /usr/share/tomcat-6/gentoo/tomcat-instance-manager.bash for Tomcat 6. Running the instance manager without any parameter displays following help:

user $ /usr/share/tomcat-7/gentoo/tomcat-instance-manager.bash
No action specified!
Usage: /usr/share/tomcat-7/gentoo/tomcat-instance-manager.bash <--create|--remove|--help> [--suffix s][--user u][--group g]

  Options:
    --help:
      show this text.
    --create:
      create a new instance
    --remove:
      remove an existing instance.
    --suffix SUFFIX:
      a suffix for this instance. the suffix may not collide with an already
      existing instance, defaults to empty.
    --user USER:
      the user for which to configure this instance for. The user needs to
      exist already. defaults to tomcat.
    --group GROUP:
      the group for which to configure this instance for. The group needs to
      exist already. defaults to tomcat.

  Examples:
    /usr/share/tomcat-7/gentoo/tomcat-instance-manager.bash --create --suffix testing --user tacmot --group tacmot
    /usr/share/tomcat-7/gentoo/tomcat-instance-manager.bash --remove --suffix testing
Note
When using "SLOT" or "suffix" in the following text, you should use real SLOT number of Tomcat you installed and real suffix you used when creating Tomcat instance. If you did not use suffix while creating Tomcat instance then omit "-suffix" completely from the path.

Follow the information in the help to create new Tomcat instances. Tomcat instances use the following layout:

  • /etc/conf.d/tomcat-SLOT-suffix: configuration file for running Tomcat instance services
  • /etc/init.d/tomcat-SLOT-suffix: controlling script for the Tomcat instance
  • /etc/tomcat-SLOT-suffix/: directory containing standard Tomcat configuration files
  • /var/lib/tomcat-SLOT-suffix/: Catalina base directory
  • /var/log/tomcat-SLOT-suffix/: directory for instance log files

You can run Tomcat instance using following command:

root # /etc/init.d/tomcat-SLOT-suffix start

If you want to start Tomcat instance on boot, run following command:

root # rc-update add tomcat-SLOT-suffix default
Note
If you are configuring multiple instances, make sure you adjust instance ports so that no instance uses the same port(s) as any other instance.

Migrating Old Tomcat Instance

To migrate Tomcat instance from Tomcat installation that supported only single instance, you can follow these steps:

  • stop old version of Tomcat
  • upgrade Tomcat to new version
  • create new Tomcat instance, for example:
user $ /usr/share/tomcat-7/gentoo/tomcat-instance-manager.bash --create --suffix main
  • configure Tomcat files of the new instance (/etc/conf.d/tomcat-7-main and /etc/tomcat-7-main/*) and copy your applications from the old instance (/var/lib/tomcat-7/webapps/*) to the new one (/var/lib/tomcat-7-main/webapps/)
  • make new Tomcat instance to start after boot if required:
root # rc-update add tomcat-7-main default
  • start the new instance:
root # /etc/init.d/tomcat-7-main start

Integrating Tomcat with Netbeans

Integration of Tomcat with Netbeans is easy. You run instance manager with --user command line switch and you specify user name of the user you are creating Catalina base for. The newly created Catalina base files are then owned by the specified user and are fully accessible by Netbeans when being run under that user. Now you can configure Tomcat in Netbeans Servers configuration dialog. When using Tomcat 7, use /usr/share/tomcat-7 as Catalina home and var/lib/tomcat-7-suffix as Catalina base. When using Tomcat 6, use /usr/share/tomcat-6 as Catalina home and var/lib/tomcat-6-suffix/ as Catalina base. In both cases replace suffix with the real suffix you used when creating the instance.

Troubleshooting

  • java-config in init script should include "-d" so that dependant JARs get added automagically to the classpath. See Gentoo Bug 448990