This section gives instructions for creating a new Eclipse project using the Vaadin Plugin. The task will include the following steps:

  1. Create a new project

  2. Write the source code

  3. Configure and start Tomcat (or some other web server)

  4. Open a web browser to use the web application

We also show how you can debug the application in the debug mode in Eclipse.

This walkthrough assumes that you have already installed the Vaadin Plugin and set up your development environment, as instructed in Section 2.2.2, « Installing the JAR Package » and Section 2.1, « Setting up the Development Environment ».

Let us create the first application project with the tools installed in the previous section. First, launch Eclipse and follow the following steps:

  1. Start creating a new project by selecting from the menu FileNewProject....
  2. In the New Project window that opens, select WebVaadin Project and click Next.
  3. In the Vaadin Project step, you need to set the basic web project settings. You need to give at least the project name and the runtime; the default values should be good for the other settings.

    Project name

    Give the project a name. The name should be a valid identifier usable cross-platform as a filename and inside a URL, so using only lower-case alphanumerics, underscore, and minus sign is recommended.

    Use default

    Defines the directory under which the project is created. You should normally leave it as it is. You may need to set the directory, for example, if you are creating an Eclipse project on top of a version-controlled source tree.

    Target runtime

    Defines the application server to use for deploying the application. The server that you have installed, for example Apache Tomcat, should be selected automatically. If not, click New to configure a new server under Eclipse.

    Configuration

    Select the configuration to use; you should normally use the default configuration for the application server. If you need to modify the project facets, click Modify.

    Deployment configuration

    This setting defines the environment to which the application will be deployed, to generate the appropriate project directory layout and configuration files. The choises are:

    • Servlet (default)
    • Google App Engine Servlet
    • Generic Portlet (Portlet 2.0)
    • Old Portlet (Portlet 1.0)

    The further steps in the New Project Wizard depend on the selected deployment configuration; the steps listed in this section are for the default servlet configuration. See Section 12.8, « Google App Engine Integration » and Chapitre 13, Portal Integration for instructions regarding the use of Vaadin in the alternative environments.

    Vaadin version

    Select the Vaadin version to use. The drop-down list shows, by default, the latest available version of Vaadin. If you want to use another version, click Download. The dialog that opens lists all official releases of Vaadin.

    If you want to use a pre-release version or a nightly development build, select Show pre-release versions and nightly builds. Select a version and click Ok to download it. It will appear as a choise in the drop-down list.

    If you want to change the project to use another version of Vaadin, for example to upgrade to a newer one, you can go to project settings and download and select the other version.

    You can click Finish here to use the defaults for the rest of the settings, or click Next.

  4. The settings in the Web Module step define the basic servlet-related settings and the structure of the web application project. All the settings are pre-filled, and you should normally accept them as they are.

    Context Root

    The context root (of the application) identifies the application in the URL used for accessing it. For example, if the server runs in the apps context and the application has myproject context, the URL would be http://example.com/app/url. The wizard will suggest myproject for the context name.

    Content Directory

    The directory containing all the content to be included in the servlet and served by the web server. The directory is relative to the root directory of the project.

    Java Source Directory

    The default source directory containing the application sources. The src directory is suggested; another convention common in web applications is to use WebContent/WEB-INF/src, in which case the sources are included in the servlet (but not served in HTTP requests).

    Generate deployment descriptor

    Should the wizard generate the web.xml deployment descriptor required for running the servlet in the WebContent/WEB-INF directory. Strongly recommended. See Section 4.8.3, « Descripteur de déploiement web.xml » for more details.

    This will be the sub-path in the URL, for example http://localhost:8080/myproject. The default for the application root will be / (root).

    You can just accept the defaults and click Next.

  5. The Vaadin project step page has various Vaadin-specific application settings. If you are trying Vaadin out for the first time, you should not need to change anything. You can set most of the settings afterwards, except the creation of the portlet configuration.

    Create project template

    Make the wizard create an application class stub.

    Application Name

    The name of the application appears in the browser window title.

    Base package name

    The name of the Java package under which the application class is to be placed.

    Application class name

    Name of the Vaadin application class.

    Create portlet configuration

    When this option is selected, the wizard will create the files needed for running the application in a portal. See Chapitre 13, Portal Integration for more information on portlets.

    Finally, click Finish to create the project.

  6. Eclipse may ask to switch to J2EE perspective. A Dynamic Web Project uses an external web server and the J2EE perspective provides tools to control the server and manage application deployment. Click Yes.

After the New Project wizard exits, it has done all the work for us: Vaadin libraries are installed in the WebContent/WEB-INF/lib directory, an application class skeleton has been written to src directory, and WebContent/WEB-INF/web.xml already contains a deployment descriptor.


The application class created by the plugin contains the following code:

package com.example.myproject;

import com.vaadin.Application;
import com.vaadin.ui.*;
public class MyprojectApplication extends Application
{
   @Override 
   public void init() {
      Window mainWindow = 
         new Window("Myproject Application");
      Label label = new Label("Hello Vaadin user");
      mainWindow.addComponent(label);
      setMainWindow(mainWindow);
   }
}

Let us add a button to the application to make it a bit more interesting. The resulting init() method could look something like:

public void init() {
   final Window mainWindow = 
      new Window("Myproject Application");

   Label label = new Label("Hello Vaadin user");
   mainWindow.addComponent(label);

   mainWindow.addComponent(
      new Button("What is the time?",
         new Button.ClickListener() {
         public void buttonClick(ClickEvent event) {
            mainWindow.showNotification(
               "The time is " + new Date());
         }
      }));

   setMainWindow(mainWindow);
}

The deployment descriptor WebContent/WEB-INF/web.xml defines Vaadin framework servlet, the application class, and servlet mapping:


For a more detailed treatment of the web.xml file, see Section 4.8.3, « Descripteur de déploiement web.xml ».

Starting your application is as easy as selecting myproject from the Project Explorer and then RunDebug AsDebug on Server. Eclipse then opens the application in built-in web browser.


You can insert break points in the Java code by double-clicking on the left margin bar of the source code window. For example, if you insert a breakpoint in the buttonClick() method and click the What is the time? button, Eclipse will ask to switch to the Debug perspective. Debug perspective will show where the execution stopped at the breakpoint. You can examine and change the state of the application. To continue execution, select Resume from Run menu.


The procedure described above allows debugging the server-side application. For more information on debugging client-side widgets, see Section 11.8.6, « GWT Development Mode ».

Restarting Application Session

When you open the URL for the application, it creates a new user session. The session is preserved even if you reload the page. Moreover, as Eclipse likes to do hot deployment to Tomcat, and Tomcat likes to persist sessions on server shutdown, you may experience a problem that the application doesn't return to its initial state after modifying code or even restarting the server.

Adding the ?restartApplication parameter in the URL tells the Vaadin servlet to create a new Application instance when reloading the page.