<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE task PUBLIC "-//OASIS//DTD DITA Task//EN"
 "task.dtd">
<task id="tjtargetserver" xml:lang="en-us">
<title outputclass="id_title">Specifying target servers for J2EE projects</title>
<shortdesc outputclass="id_shortdesc">When you develop J2EE applications,
you can 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.</shortdesc>
<prolog><metadata>
<keywords><indexterm>J2EE modules<indexterm>target servers</indexterm></indexterm>
<indexterm>projects<indexterm>target servers</indexterm></indexterm><indexterm>target
servers</indexterm></keywords>
</metadata></prolog>
<taskbody outputclass="id_taskbody">
<context outputclass="id_context"><p outputclass="anchor_topictop"></p>
<p>In order to support different application servers that use different JDK levels for
their <tm tmclass="special" tmowner="Sun Microsystems, Inc." tmtype="tm" trademark="Java">Java</tm> Runtime
Environment (JRE), the workbench prompts you for a target server setting for
each J2EE project. 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 prompting you
to specify a target server, the workbench enforces that proper entries are
added for running on the server you choose.</p><p>You can also add more than
one target server for your project. In this case, the workbench prevents you
from adding any facets not supported by all of the target servers. If you
add more than one target server, one of those servers must be the primary
server, the server that will contribute to the project's class path.</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 org.eclipse.wst.common.project.facet.core.xml file in
the project's .settings folder. You should not edit this file manually; instead,
use the properties window as described in this topic.</p><p>All J2EE project
creation and import wizards prompt 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 <tm tmclass="special" tmowner="Sun Microsystems, Inc."
tmtype="tm" trademark="JavaBeans">JavaBeans</tm> 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><note>Utility <tm
tmclass="special" tmowner="Sun Microsystems, Inc." tmtype="tm" trademark="Java">Java</tm> 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.</note><p>To modify
the target runtime and default server for an existing project:</p></context>
<steps outputclass="id_steps">
<step><cmd>In the Project Explorer view of the J2EE perspective, right-click
the enterprise application or module project, and select <uicontrol>Properties</uicontrol> from
the pop-up menu.</cmd><stepresult>The Properties dialog for the project opens.</stepresult>
</step>
<step><cmd>Select the <uicontrol>Targeted Runtimes</uicontrol> page on the
Properties dialog.</cmd></step>
<step><cmd>In the <uicontrol>Runtimes</uicontrol> list, select the check boxes
next to each of the runtimes that you want to develop the project for.</cmd>
<info><p>Only the runtimes compatible with the project's facets are shown.
You can select the <uicontrol>Show all runtimes</uicontrol> check box to display
the runtimes not compatible with the project's current facet configuration.
These runtimes are grayed out.</p><p>If you don't see the runtime that you
want to use, you need to add it to the runtimes in the workbench. See <xref
format="html" href="../org.eclipse.wst.server.ui.doc.user/topics/twinstprf.html"
scope="peer">Defining the installed server runtime environments</xref>.</p></info>
</step>
<step><cmd>To select the primary runtime, click on a runtime and then click
the <uicontrol>Make Primary</uicontrol> button.</cmd><info><p>If you select
any runtimes for the project, you must make one of those runtimes the primary
runtime for the project. If you select only one runtime from the list, that
runtime is automatically made the primary runtime. The primary runtime is
shown in bold text.</p></info></step>
<step><cmd>Click <uicontrol>Finish</uicontrol>.</cmd></step>
<step><cmd>Click <uicontrol>OK</uicontrol>.</cmd></step>
</steps>
<postreq outputclass="id_postreq"><p outputclass="anchor_topicbottom"></p></postreq>
</taskbody>
</task>
