Skip to content

SettingUpATomcatServerInEclipse

Nicholas Bergson-Shilcock edited this page Jul 19, 2011 · 19 revisions

[PageOutline]

Download Tomcat

We target everything to the Java Servlet spec v2.4. Though you can use most any compliant container, we use the Tomcat 5.5 series by default. Download the latest version here:

http://tomcat.apache.org/download-55.cgi

Uncompress the software package somewhere permanent.

Installing the Server Runtime in Eclipse

Under the general Eclipse "Preferences..." menu item ("Window -> Preferences..." on Windows and Linux, "Eclipse -> Preferences" on Mac OS X), browse to "Server -> Runtime Environments", as shown in the following figure:

image

Click "Add" to add a new runtime. Select the "Apache Tomcat v5.5" runtime.

image

Once selected, you need to specify the path to your download of Tomcat:

image

Creating a New Server Instance

We need to open the "Server" view so that we can add a new server instance. In Eclipse, select the following menu item chain "Window -> Show View -> Other... -> Server -> Servers". This should add a "Servers" tab window to your workbench. Right click in that "Servers" window, select "New -> Server". It should bring up the following dialog:

image

Keep the host name as "localhost", select the "Apache Tomcat v5.5 Server" as the type, name the server whatever you like ("opentripplanner" perhaps?), and make sure the Server runtime you installed is selected in the drop down list. Click "Finish" and there should now be a server entry with the name you specified in the "Servers" window.

More Server Setup

By default, Eclipse will deploy your webapp to a folder in the following location:

/.metadata/.plugins/org.eclipse.wst.server.core/tmp0

Since that's a little unwieldy to work with, I like to change it to something more direct. To change the location, double click on the server entry with the name you specified that should now be listed in the "Servers" window.

In the Server Locations tab, change to "Use a custom location" and select a more reasonable path (I like <path to Eclipse workspace directory>/apache-tomcat-config/server_name myself). See as an example:

image

Note that to update this setting, the server must not have any projects assigned to it yet (as in the next section) and the server must be published (right click on the server entry and click "Publish").

Add Project Modules to the Server

We now want to add project modules to the server so the server can host their content. Right click on your newly created server entry and select "Add and Remove Projects..."

image

Add any or all of the OpenTripPlanner webapp projects that you wish to work with.

Starting and Stopping the Server

Once you've added a few project modules to a server, it's ready to run. Right click on your server instance and you should see methods for starting and stopping the server instance, as well as running the instance in debugging mode.

When you run a server instance, an entry is actually created in the standard Eclipse Run Configurations, which controls the command line options, classpath, and other settings for running applications, unit tests, etc in Eclipse. You can specify additional command line options there to, for example, increase the amount of heap memory available to the server or define other system properties.

When the server is started, it will begin spitting out messages to the console about its startup progress. When all has gone well, you'll typically get a message like:

Oct 10, 2009 8:06:21 AM org.apache.catalina.startup.Catalina start

INFO: Server startup in 4563 ms

However, go back and check for any exceptions that might have been thrown when attempting to load the project module into the container.

If all has gone well, you should now be able to see your project at:

http://localhost:8080/name-of-project-module-here

The documentation on this wiki is outdated and should not be used

unless you are intentionally working with legacy versions of OpenTripPlanner. Please consult the current documentation at readthedocs

Clone this wiki locally