<?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 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, 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="Creating a Tomcat server" />
<meta name="abstract" content="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:" />
<meta name="description" content="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:" />
<meta content="testing, Web projects, servers, Apache Tomcat, testing with Apache Tomcat" name="DC.subject" />
<meta content="testing, Web projects, servers, Apache Tomcat, testing with Apache Tomcat" name="keywords" />
<meta scheme="URI" name="DC.Relation" content="../topics/twtomprf.html" />
<meta scheme="URI" name="DC.Relation" content="http://wiki.eclipse.org/WTP_Tomcat_FAQ" />
<meta content="XHTML" name="DC.Format" />
<meta content="tomcat_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>Creating a Tomcat server</title>
</head>
<body id="tomcat_jst"><a name="tomcat_jst"><!-- --></a>


<h1 class="topictitle1">Creating a Tomcat server</h1>



<div><p>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: </p>

<div class="p" id="tomcat_jst__prereq"><a name="tomcat_jst__prereq"><!-- --></a><strong>Prerequisites</strong><div class="p"><ul>
<li>Download Apache Tomcat from  <a href="http://jakarta.apache.org/tomcat" target="_blank">jakarta.apache.org/tomcat</a></li>

<li>Extract the compressed file containing Apache Tomcat on your local file
system.</li>

<li>Add the Apache Tomcat runtimes. For details on how to do this, refer to
the <em>Add the Apache Tomcat runtimes</em> link on the bottom of this topic.</li>

</ul>
</div>
<p>To create a Apache Tomcat server:</p>
</div>

<a name="tomcat_jst__steps"><!-- --></a><ol id="tomcat_jst__steps">
<li class="stepexpand"><span>In the Servers view, right-click and select <span class="uicontrol">New</span> &gt; <span class="uicontrol">Server</span>.
The Define a New Server wizard opens.</span></li>

<li class="stepexpand"><span>In the <span class="uicontrol">Select the server type</span> list, select
the Tomcat server defined in the previous step.</span> <div class="tip"><span class="tiptitle">Tip:</span> If
you did not specify the Tomcat install directory, the Define a New Server
wizard will prompt you for this information.</div>
</li>

<li class="stepexpand"><span>Start the Tomcat server.</span> In the Servers view, right-click
the Tomcat server and select <span class="uicontrol">Start</span>.</li>

<li class="stepexpand"><span>Test your setup of the Tomcat server.</span>
<ol type="a">
<li><span>Open a Web browser.</span></li>

<li><span>Type the Web address <samp class="codeph">http://localhost:8080/</samp>.
If you see the Apache Tomcat start page, you have successfully set up your
Tomcat server.</span></li>

</ol>

</li>

</ol>

</div>

<div><div class="reltasks"><strong>Related tasks</strong><br />
<div><a href="../topics/twtomprf.html" title="Using the Preferences page, you can define the server runtime environment definitions for the Apache Tomcat server. To define these definitions, complete the following:">Adding the Apache Tomcat runtimes</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 about using the Apache Tomcat server with the workbench.">WTP
Tomcat FAQ</a></div>
</div>
</div>

</body>
</html>