<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en-us" xml:lang="en-us">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<meta name="copyright" content="Copyright (c) 2000, 2009 IBM Corporation and others. All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License 2.0 which accompanies this distribution, and is available at https://www.eclipse.org/legal/epl-2.0/. Contributors: IBM Corporation - initial API and implementation" />
<meta name="DC.rights.owner" content="(C) Copyright 2000, 2009" />
<meta content="public" name="security" />
<meta content="index,follow" name="Robots" />
<meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0) "http://www.classify.org/safesurf/" l gen true r (SS~~000 1))' />
<meta content="task" name="DC.Type" />
<meta name="DC.Title" content="Adding the Apache Tomcat runtimes" />
<meta name="abstract" content="Using the Preferences page, you can define the server runtime environment definitions for the Apache Tomcat server. To define these definitions, complete the following:" />
<meta name="description" content="Using the Preferences page, you can define the server runtime environment definitions for the Apache Tomcat server. To define these definitions, complete the following:" />
<meta content="servers, Apache Tomcat, defining runtime environment, runtime environments, workbench, Apache Tomcat server runtime environment" name="DC.subject" />
<meta content="servers, Apache Tomcat, defining runtime environment, runtime environments, workbench, Apache Tomcat server runtime environment" name="keywords" />
<meta scheme="URI" name="DC.Relation" content="../topics/tomcat.html" />
<meta scheme="URI" name="DC.Relation" content="http://wiki.eclipse.org/WTP_Tomcat_FAQ" />
<meta content="XHTML" name="DC.Format" />
<meta content="twtomprf_jst" name="DC.Identifier" />
<meta content="en-us" name="DC.Language" />
<link href="../../org.eclipse.wst.doc.user/common.css" type="text/css" rel="stylesheet" />
<title>Adding the Apache Tomcat runtimes</title>
</head>
<body id="twtomprf_jst"><a name="twtomprf_jst"><!-- --></a>


<h1 class="topictitle1">Adding the Apache Tomcat runtimes</h1>



<div><p>Using the Preferences page, you can define
the server runtime environment definitions for the Apache Tomcat server.
To define these definitions, complete the following: </p>

<a name="twtomprf_jst__steps"><!-- --></a><ol id="twtomprf_jst__steps">
<li class="stepexpand"><span>From the Window menu, select  <span class="uicontrol">Preferences</span>.</span>
</li>

<li class="stepexpand"><span>In the Preferences window, expand  <span class="uicontrol">Server</span> and
then select  <span class="uicontrol">Runtime Environments</span>.</span></li>

<li class="stepexpand"><span>On the Server Runtime Environments page, click <span class="uicontrol">Add</span>.</span>
 The New Server Runtime Environment wizard opens.</li>

<li class="stepexpand"><span>On the New Server Runtime Environment page, expand <span class="uicontrol">Apache</span>.</span>
</li>

<li class="stepexpand"><span>Select one of the following supported Apache Tomcat servers:</span>
<ul>
<li>Apache Tomcat v3.2</li>

<li>Apache Tomcat v4.0</li>

<li>Apache Tomcat v4.1</li>

<li>Apache Tomcat v5.0</li>

<li>Apache Tomcat v5.5</li>

<li>Apache Tomcat v6.0</li>

<li>Apache Tomcat v7.0</li>

</ul>

</li>

<li class="stepexpand"><span>When you add a server runtime environment, by default a
server is created and added as an entry in the Servers view. If you
want to only add the server runtime environment and not create the
server in the Servers view, clear the <span class="uicontrol">Create a new local
server</span> check box.</span></li>

<li class="stepexpand"><span>The Tomcat Server page opens when you click  <span class="uicontrol">Next</span>.</span>
</li>

<li class="stepexpand"><span>In the <span class="uicontrol">Tomcat installation directory</span> field,
type or browse to the directory where you extracted the installation
files of Apache Tomcat.</span>  For example, <var class="varname">x</var>:\apache-tomcat-6.0.13,
where <var class="varname">x</var> is the installation directory of the Apache
Tomcat server.</li>

<li class="stepexpand"><span>Click <span class="uicontrol">Finish</span>.</span></li>

</ol>

</div>

<div><div class="reltasks"><strong>Related tasks</strong><br />
<div><a href="../topics/tomcat.html" title="The server tools feature supports the Apache Tomcat runtime environment, running locally. With Tomcat, you can only test Web projects that contain servlets and JSPs. To set up a server to test projects on Apache Tomcat, complete the following:">Creating a Tomcat server</a></div>
</div>
<div class="relinfo"><strong>Related information</strong><br />
<div><a href="http://wiki.eclipse.org/WTP_Tomcat_FAQ" target="_blank" title="See this link for additional information using the Apache Tomcat server with the workbench.">WTP Tomcat FAQ</a></div>
</div>
</div>

</body>
</html>