@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 |