<?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="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>