Java EE 6 SDK

Samples Main Page

# The Custom Valve Application

This sample application demonstrates the custom valve facilities available in GlassFish v3.

Valves are filter-like components that are used by the web container to intercept the HTTP request and response objects and perform some pre-processing logic before they are passed to the application's filter chain and servlet, and to perform some post-processing logic after they return from the application's filter chain and servlet. For example, the container leverages valves for access logging and authentication purposes.

Valves are also provided as container extension points, and may be added and configured by administrators at the virtual server level in `domain.xml`, and by developers in their `sun-web.xml`.

Valves may implement one of two interfaces: the `org.apache.catalina.Valve` interface from Tomcat or the `org.glassfish.web.valve.GlassFishValve` interface from GlassFish.

## Description

This sample application declares a custom valve in its `sun-web.xml` and configures it with a single property. The `web.servlet.customvalve_war.TestValve` valve implementation class is bundled inside the application's `WEB_INF/classes` folder. The custom valve's pre-invocation logic sets the valve's property as a request attribute.

The test client accesses the application's servlet, which checks for the presence of this request attribute and reports an error if it is missing.

## Building, Deploying, and Running the Application

Perform the following steps to build, deploy, and run the 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/javaee6/web/container/customvalve-war`.
3. ````Change directory to `app_dir.
   `
4. Build, deploy and run the sample application using the `all` target``

`app_dir>` `ant all
`

You can replace the `ant all` command with the following set of commands:
``

`app_dir> ant default` compiles and packages the application

`app_dir> ant deploy` deploys it to application server

`app_dir> ant run` runs the test

5. Note: You can run the test in one of the following ways:
   - Use the browser to access http:<javaee.server.name>:<javaee.server.port>/customvalve_war
     The following output is expected in the browser:
     HELLO WORLD!
   - `app_dir> ant run`
6. Use the target `undeploy` to undeploy the application.

   `app_dir> ant undeploy`

7. Use the target `clean` to remove the temporary directories like build and dist.

   `app_dir> ant 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 6 SDK.
2. In the NetBeans IDE, choose File → Open Project (Ctrl-Shift-O), navigate to the `samples_install_dir/javaee6/web/container/` directory, select `customvalve-war`, and click Open Project.
3. In the Projects tab, right click `customvalve_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 © 1997-2010 Oracle and/or its affiliates. All rights reserved.