<?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, 2008 IBM Corporation and others. All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: IBM Corporation - initial API and implementation" />
<meta name="DC.rights.owner" content="(C) Copyright 2000, 2008" />
<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 installed server runtime 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 installed server runtime definitions for the Apache Tomcat server. To define these definitions, complete the following:" />
<meta content="servers, runtime environments, Apache Tomcat, Apache Tomcat, defining runtime environment, runtime environment, defining, workbench, defining server runtime environment" name="DC.subject" />
<meta content="servers, runtime environments, Apache Tomcat, Apache Tomcat, defining runtime environment, runtime environment, defining, workbench, defining server runtime environment" name="keywords" />
<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 installed
server runtime 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">Installed Runtimes</span>.</span></li>

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

<li class="stepexpand"><span>On the New Server Runtime 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>

</ul>

</li>

<li class="stepexpand"><span>When you
add an installed 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 installed
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 />

</body>
</html>