|  | = Gerrit Code Review - J2EE Installation | 
|  |  | 
|  | == 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 link:install.html#createdb[database setup] and | 
|  | link:install.html#init[site initialization] 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. | 
|  | Don't 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') link:config-auto-site-initialization.html[ | 
|  | Configure Automatic Site Initialization on Startup] | 
|  |  | 
|  |  | 
|  | == 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`. | 
|  |  | 
|  | * link:http://www.eclipse.org/jetty/downloads.php[Jetty Downloads] | 
|  |  | 
|  | 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]] | 
|  | == Tomcat 7.x | 
|  |  | 
|  | If a reverse proxy is used in front of Tomcat then see the | 
|  | link:config-reverseproxy.html[configuration instructions for encoding | 
|  | slashes]. 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 | 
|  | link:https://tomcat.apache.org/tomcat-7.0-doc/config/systemprops.html[ | 
|  | documentation]: | 
|  |  | 
|  | ---- | 
|  | 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 link:index.html[Gerrit Code Review] | 
|  |  | 
|  | SEARCHBOX | 
|  | --------- |