@Interceptors(HelloInterceptor.class)
public void setName(String name) {
    this.name = name;
}
| 
  Java Platform, Enterprise Edition (Java EE) 8 The Java EE Tutorial  | 
  
| Previous | Next | Contents | 
The interceptor example demonstrates how to use an interceptor class,
containing an @AroundInvoke interceptor method, with a stateless
session bean.
The HelloBean stateless session bean is a simple enterprise bean with
two business methods, getName and setName, to retrieve and modify a
string. The setName business method has an @Interceptors annotation
that specifies an interceptor class, HelloInterceptor, for that
method:
@Interceptors(HelloInterceptor.class)
public void setName(String name) {
    this.name = name;
}
The HelloInterceptor class defines an @AroundInvoke interceptor
method, modifyGreeting, that converts the string passed to
HelloBean.setName to lowercase:
@AroundInvoke
public Object modifyGreeting(InvocationContext ctx) throws Exception {
    Object[] parameters = ctx.getParameters();
    String param = (String) parameters[0];
    param = param.toLowerCase();
    parameters[0] = param;
    ctx.setParameters(parameters);
    try {
        return ctx.proceed();
    } catch (Exception e) {
        logger.warning("Error calling ctx.proceed in modifyGreeting()");
        return null;
    }
}
The parameters to HelloBean.setName are retrieved and stored in an
Object array by calling the InvocationContext.getParameters method.
Because setName only has one parameter, it is the first and only
element in the array. The string is set to lowercase and stored in the
parameters array, then passed to InvocationContext.setParameters. To
return control to the session bean, InvocationContext.proceed is
called.
The user interface of interceptor is a JavaServer Faces web
application that consists of two Facelets views: index.xhtml, which
contains a form for entering the name, and response.xhtml, which
displays the final name.
You can use either NetBeans IDE or Maven to build, package, deploy, and
run the interceptor example.
The following topics are addressed here:
Make sure that GlassFish Server has been started (see Starting and Stopping GlassFish Server).
From the File menu, choose Open Project.
In the Open Project dialog box, navigate to:
tut-install/examples/ejb
Select the interceptor folder and click Open Project.
In the Projects tab, right-click the interceptor project and
select Run.
This will compile, deploy, and run the interceptor example, opening a
web browser to the following URL:
http://localhost:8080/interceptor/
Enter a name into the form and click Submit.
The name will be converted to lowercase by the method interceptor
defined in the HelloInterceptor class.
Make sure that GlassFish Server has been started (see Starting and Stopping GlassFish Server).
Go to the following directory:
tut-install/examples/ejb/interceptor/
To compile the source files and package the application, use the following command:
mvn install
This command builds and packages the application into a WAR file,
interceptor.war, located in the target directory. The WAR file is
then deployed to GlassFish Server.
Open the following URL in a web browser:
http://localhost:8080/interceptor/
Enter a name into the form and click Submit.
The name will be converted to lowercase by the method interceptor
defined in the HelloInterceptor class.
| Previous | Next | Contents | 
 			
		Copyright © 2017, Oracle and/or its affiliates. All rights reserved.