<?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 http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- /*******************************************************************************
 * Copyright (c) 2000, 2005 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
 *******************************************************************************/ -->
<link rel="stylesheet" type="text/css" href="../org.eclipse.wst.doc.user/common.css" />
<title>Specifying target servers for J2EE projects</title>
</head>
<body id="tjtargetserver"><a name="tjtargetserver"><!-- --></a>

<h1 class="topictitle1">Specifying target servers for J2EE projects</h1>
<div><p>When you develop J2EE applications, the workbench requires that
you specify the server runtime environments for your J2EE projects. The target
server is specified during project creation and import, and it can be changed
in the project properties. The target server setting is the default mechanism
for setting the class path for J2EE projects.</p>
<div class="section"><p>In order to support different application servers that use different
JDK levels for their Java™ Runtime Environment (JRE), the workbench
requires that projects include a target server setting. For example, if you
want to take advantage of the features of JDK 1.4.2, your applications require
different class path entries than those that were used in previous versions
of the workbench. By requiring that you specify a target server, the workbench
enforces that proper entries are appropriately added for running on the server
you choose.</p>
<p>When the project is created, the class path of the project
is updated with two class path containers. One container is the JDK container
and the other is the server container. The JDK container points to the directory
that contains the JAR files that are necessary to support the JDK version.
The server container points to the directory that contains the multiple public
JAR files available in the selected server. The project then compiles based
on the required JAR files located in these folders, and you do not need to
worry about adding additional JAR files from the server during development.
When the project is compiled, the JAR files are included in the class path.
You can still add your own JAR files to the class path.</p>
<p>The target runtime
environment is specified in the .runtime file in the project's resources.
You should not edit this file manually.</p>
<p>All J2EE project creation and
import wizards require you to specify the target server for the resulting
projects. The list of target servers that you can choose from is filtered
based on installed runtimes, the J2EE level of the application, and the J2EE
module type. For example, for EJB projects only application servers that support
Enterprise JavaBeans™ are displayed. All projects inside a
single EAR file must be targeted to the same server. If you create a new project
and add it to an existing EAR project during creation, the project inherits
the target server setting of the EAR project.</p>
<div class="note"><span class="notetitle">Note: </span>Utility Java projects
that are added to an application are targeted to the same target server as
the application. Web library projects that are added to a Web project are
targeted to the same target server as the Web project.</div>
<p>To modify
the target runtime and default server for an existing project:</p>
</div>
<ol><li class="stepexpand"><span>In the Project Explorer view of the J2EE perspective, right-click
the enterprise application or module project, and select <span class="uicontrol">Properties</span> from
the pop-up menu.</span> The Properties dialog for the project opens.</li>
<li class="stepexpand"><span>Select the <span class="uicontrol">Server</span> page on the Properties
dialog.</span></li>
<li class="stepexpand"><span>In the <span class="uicontrol">Target runtime</span> list, select
the server runtime that you want your project to be developed for. This selection
impacts the runtime libraries that are added to your project class path. You
can click <span class="uicontrol">New</span> to define a new runtime environment that
you have installed. The list of runtime environments are defined in your workbench
preferences.</span></li>
<li class="stepexpand"><strong>Optional: </strong><span>Enterprise applications only: When modifying
the target server for an enterprise application, you can select the <span class="uicontrol">Include
child projects</span> check box to apply your changes to any children
modules.</span> This ensures that the enterprise application project
and all of its module projects, utility projects, and Web application library
projects have the same target server.</li>
<li class="stepexpand"><strong>Optional: </strong><span>In the <span class="uicontrol">Default server</span> field,
select a default server to use when deploying the project. Although you would
typically set this to the same value as the target runtime, the <span class="uicontrol">Default
server</span> selection is independent of the <span class="uicontrol">Target runtime</span> selection.
The default server simply specifies a project preference so you are not prompted
for available runtime environments when you deploy the project.</span></li>
<li class="stepexpand"><span>Click <span class="uicontrol">Apply</span> to save your changes.</span></li>
</ol>
</div>
<div><div class="relconcepts"><strong>Related concepts</strong><br />
<div><a href="../topics/cjarch.html" title="The Java 2 Platform, Enterprise Edition (J2EE) provides a standard for developing multitier, enterprise services.">J2EE architecture</a></div>
</div>
</div>
</body>
</html>