blob: 57d8e5839b327e33cefe9e25e58f5978195d786a [file] [log] [blame] [view]
---
title: " Gerrit Code Review - J2EE Installation"
sidebar: gerritdoc_sidebar
permalink: install-j2ee.html
---
## Description
Gerrit binary distributions include a standalone Jetty servlet
container, but are packaged as a standard WAR file to permit easy
deployment to other existing container installations if using the
standalone daemon is not desired.
Gerrit Code Review can be installed into any J2EE servlet container,
including popular open source containers such as Jetty or Tomcat, or any
commercial server which supports the J2EE servlet specification.
## Installation
- Complete the [database setup](install.html#createdb) and [site
initialization](install.html#init) tasks described in the standard
installation documentation.
- Stop the embedded daemon that was automatically started by *init*:
```
review_site/bin/gerrit.sh stop
```
- Configure JNDI DataSource *jdbc/ReviewDb*.
This DataSource must point to the database you created above. Dont
forget to ensure your JNDI configuration can load the necessary JDBC
drivers. You may wish to ensure connection pooling is configured and
enabled within the DataSource.
- Deploy the *gerrit.war* file to your application server.
The deployment process differs between servers, but typically this
can be accomplished by copying *gerrit.war* into the *webapps/*
subdirectory of the container’s installation.
- (*Optional*) Install Bouncy Castle Crypto API
If you enabled Bouncy Castle Crypto during *init*, copy the JAR from
`'$site_path'/lib` into your servlet container’s extensions
directory so it’s available to Gerrit Code Review.
- (*Optional*) [Configure Automatic Site Initialization on
Startup](config-auto-site-initialization.html)
## Jetty 7.x
These directions will configure Gerrit as the default web application,
allowing URLs like `http://example.com/4543` to jump directly to change
4543.
Download and unzip a release version of Jetty. From here on we call the
unpacked directory `$JETTY_HOME`.
- [Jetty Downloads](http://www.eclipse.org/jetty/downloads.php)
If this is a fresh installation of Jetty, move into the installation
directory and do some cleanup to remove the sample webapps:
```
cd $JETTY_HOME
rm -rf contexts/* webapps/*
```
Copy Gerrit Code Review into the deployment:
```
cp ~/gerrit.war webapps/gerrit.war
java -jar webapps/gerrit.war cat extra/jetty7/gerrit.xml >contexts/gerrit.xml
```
Install the required additional libraries by copying them into the
`'$JETTY_HOME'/lib/ext` directory:
```
cp ../review_db/lib/* lib/ext/
java -jar webapps/gerrit.war cat lib/commons-dbcp-1.2.2.jar >lib/ext/commons-dbcp-1.2.2.jar
java -jar webapps/gerrit.war cat lib/commons-pool-1.5.4.jar >lib/ext/commons-pool-1.5.4.jar
java -jar webapps/gerrit.war cat lib/h2-1.2.128.jar >lib/ext/h2-1.2.128.jar
java -jar webapps/gerrit.war cat lib/postgresql-8.4-701.jdbc4.jar >lib/ext/postgresql-8.4-701.jdbc4.jar
```
Edit `'$JETTY_HOME'/contexts/gerrit.xml` to correctly configure the
database and outgoing SMTP connections, especially the user and password
fields.
If OpenID authentication (or certain enterprise single-sign-on
solutions) is being used, you may need to increase the header buffer
size parameter, due to very long header lines being used by the OpenID
authentication handshake process. Add the following to
`'$JETTY_HOME'/etc/jetty.xml` under
`org.eclipse.jetty.server.nio.SelectChannelConnector`:
```
<Set name="headerBufferSize">16384</Set>
```
To start automatically when the system boots, create a start script and
modify it for your
configuration:
```
java -jar webapps/gerrit.war --cat extra/jetty7/gerrit-jetty.sh >/etc/init.d/gerrit-jetty
vi /etc/init.d/gerrit-jetty
```
> **Tip**
>
> Under Jetty, restarting the web application (e.g. after modifying
> `system_config`) is as simple as touching the context config file:
> `'$JETTY_HOME'/contexts/gerrit.xml`
## Tomcat 7.x
If a reverse proxy is used in front of Tomcat then see the
[configuration instructions for encoding
slashes](config-reverseproxy.html). Otherwise Tomcat must be configured
to encode slashes, by adding
`-Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true` to the
`CATALINA_OPTS` environment variable.
Excerpt from the
[documentation](https://tomcat.apache.org/tomcat-7.0-doc/config/systemprops.html):
Property org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH:
If this is true '%2F' and '%5C' will be permitted as path delimiters.
If not specified, the default value of false will be used.
## GERRIT
Part of [Gerrit Code Review](index.html)
## SEARCHBOX