Java EE 8 SDK 

Samples Main Page

The HTTP Trailer Servlet Sample Application

This is a simple Servlet application that demonstrate the usage of HTTP trailer API.

Description

Servlet

The servlet consumes HTTP trailer from request and produces HTTP trailer for the response.

@WebServlet("/test")
public class TestServlet extends HttpServlet {
    protected void doPost(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException {
        ...
        if (req.isTrailerFieldsReady()) {
            Map reqTrailerFields = req.getTrailerFields();
            size = reqTrailerFields.size();
            foo = reqTrailerFields.get("foo");
        }
        ...
        res.setTrailerFields(new Supplier<Map<String, String>>() {
            @Override
            public Map<String, String> get() {
                Map<String, String> map = new HashMap<>();
                map.put("bar", finalFoo + finalSize);
                return map;
            }
        });
        ...
    } 
}

javax.servlet.http.HttpServletRequest.getTrailerFields is used to consume the request trailer. javax.servlet.http.HttpServletResponse.setTrailerFields is used to produce the response trailer.

For convenience, a ClientServlet is included to produce a chunked transfer encoding request with HTTP trailer and extract the HTTP trailer for the response from the TestServlet above.

Deployment Descriptor

By using annotations, the deployment descriptor is no longer required.

GlassFish Server Specific Deployment Configuration

There is no need to define any GlassFish Server deployment descriptor (glassfish-web.xml) for this sample.

Key Features

This sample demonstrates the following key features:

Building, Deploying, and Running the Application

Follow these instructions for building, deploying, and running this sample application:

  1. Set up your build environment and configure the application server with which the build system has to work by following the common build instructions.
  2. app_dir is the sample application base directory: samples_install_dir/servlet/trailer-war.
  3. Change directory to app_dir.
  4. Build and deploy the sample application using the mvn target:

    Use the command below to run this sample using the Cargo framework:

    app_dir> mvn clean verify cargo:run

    You can point Cargo to an already installed and running Glassfish server:

    app_dir> mvn clean verify cargo:run -Dglassfish.home=$<glassfish_dir> (e.g. ../glassfish5)

    You can also build, deploy the sample application without Cargo:

    app_dir> mvn install

    app_dir> asadmin deploy ./target/<app_name>.war

  5. Run the sample as follows:

  6. Use the glassfish command line to undeploy the application.

    app_dir> asadmin undeploy <app_name>

  7. Use the target clean to remove the temporary directories like /target.

    app_dir> mvn clean

Building, Deploying, and Running the Application in NetBeans IDE

Perform the following steps to build, deploy, and run the application using NetBeans IDE:

  1. Refer to the common build instructions for setting up NetBeans IDE and Java EE 8 SDK.
  2. In the NetBeans IDE, choose File → Open Project (Ctrl-Shift-O), navigate to the samples_install_dir/servlet/ directory, select trailer-war, and click Open Project.
  3. In the Projects tab, right click trailer-war and select Run to build, deploy, and run the project.

Troubleshooting

If you have problems when running the application, refer the troubleshooting document.

 

Copyright © 2017 Oracle and/or its affiliates. All rights reserved.