The interceptor Example Application (original) (raw)
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 toHelloBean.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 anObject
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 theparameters
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.
Running the interceptor Example
You can use either NetBeans IDE or Maven to build, package, deploy, and run the interceptor
example.
The following topics are addressed here:
To Run the interceptor Example Using NetBeans IDE
- Make sure that GlassFish Server has been started (seeStarting and Stopping GlassFish Server).
- From the File menu, choose Open Project.
- In the Open Project dialog box, navigate to:
- 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 theinterceptor
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 theHelloInterceptor
class.
To Run the interceptor Example Using Maven
- Make sure that GlassFish Server has been started (seeStarting 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:
This command builds and packages the application into a WAR file,interceptor.war
, located in thetarget
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 theHelloInterceptor
class.