Chapter 3. WTP Projects

This chapter covers how to select installed runtime/server in your web project

3.1. Description

WTP provides what are called "faceted" projects. Their most popular of these projects are their J2EE projects, such as their Dynamic Web Project, their EJB Project, or their EAR project. Web projects of JBoss Tools are Stuts, JSF and Seam projects.

The idea behind faceted projects is that each project can accept units of functionality, or facets, which can be added or removed by the user. Some examples of these facets are adding a webdoclet facet to a web project, or an ejbdoclet to an EJB Project.

Most often, these "facets" either add to the project's classpath, enable a builder, or watch the project in some other fashion.

WTP projects have undergone some criticism as being over-engineered or too restrictive in their design. WTP projects are set up in a tree-relationship to each other, where one project can be a child of another. For example, an EAR project may have a Web Project child, an EJB project child, or other types.

The benefit of this is that the structure of your projects is then known, and packaging it up *should* be trivial. However, if your project is non-standard, or you feel too confined by such rigid structural requirements, you can still choose to package your project using the Archives plugin

3.2. Faceted Project Wizards

To create a new Dynamic Web Project select File > New > Other... then Web > Dynamic Web Project

New Dynamic Web Project

Figure 3.1. New Dynamic Web Project


Click Next and you will see Dynamic Web Project page

Faceted Project Wizard: First Page

Figure 3.2. Faceted Project Wizard: First Page


The first page of most WTP projects allows you to target a specific runtime, representing a server's library location. It will also provide you the ability to add this project to an EAR project, and select a pre-selected default set of facets, called a configuration, rather than manually select each facet you might want.

Selecting the runtime, again, allows the project to install the proper classpaths to the project so it knows what code to compile against.

Faceted Project Wizard: Second Page

Figure 3.3. Faceted Project Wizard: Second Page


The second page of the wizard allows you to enable or disable specific facets, as described above. Some facets may require others, and some may conflict with others, but on the whole this page allows you to add any number of facets that don't conflict with each other.

Further pages are specific to either the project type, or the facets selected.