1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- = Using AspectJ in servlets
-
- _Last updated: 2003-09-27 by wisberg_
-
- This contains short notes on using AspectJ with various J2EE servers and
- deployment tools.
-
- == Generally
-
- AspectJ programs work if run in the same namespace and with
- aspectjrt.jar. Servlet runners and J2EE web containers should run
- AspectJ programs fine if the classes and required libraries are deployed
- as usual. As with any shared library, if more than one application is
- using AspectJ, then the aspectjrt.jar should be deployed where it will
- be loaded by a common classloader. The same is true of any shared
- aspects.
-
- == Running AspectJ servlets in Tomcat 4.x
-
- In Tomcat, you can deploy application servlets in WAR's or in exploded
- web directories and share code across applications.
-
- . Use `ajc` to compile the servlets, and deploy the classes as usual
- into `{WebRoot}/WEB-INF/classes`.
- . If your web applications or aspects do not interact, deploy
- `aspectjrt.jar` into `{WebRoot}/WEB-INF/lib`.
- . If your web applications or aspects might interact, deploy them to
- `${CATALINA_BASE}/shared/lib`.
-
- Tomcat 4.x uses the Jasper engine based on Ant to compile JSP's. To set
- up ajc as the compiler, do the following before starting Tomcat:
-
- . Put `aspectjtools.jar` in `${CATALINA_HOME}/common/lib` so that it can
- be loaded by Jasper.
-
- . Update Jasper servlet parameters in `${CATALINA_HOME}/conf/web.xml` to
- tell Ant to use `ajc` by setting the compiler property to the AspectJ
- compiler adapter:
- +
- [source, xml]
- ....
- <servlet>
- <servlet-name>jsp</servlet-name>
- <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
- ...
- <init-param>
- <param-name>compiler</param-name>
- <param-value>org.aspectj.tools.ant.taskdefs.Ajc11CompilerAdapter</param-value>
- </init-param>
- ....
-
- . The classpath is dynamically generated from the webapp deployment, so
- `aspectjrt.jar` should be in `{webapp}/WEB-INF/lib` or some shared or
- common directory supported by the server.
-
- . Alternatively, you can precompile JSP's using
- xref:../scripts/precompile-jsp.build.xml[this Ant script]. That involves
- manually updating the `web.xml` file with the `Jasper`-generated servlet
- mappings.
|