将AspectJ集成到基于Eclipse + Lomboz + XmlBuddy的Web应用中去 - 基础篇
2008-01-05 19:59:37 来源:WEB开发网一、 配置eclipes开发环境
首先,下载需要的插件:
eclipse-SDK-
Eclipse IDE
官方下载地址:
http://download.eclipse.org/downloads/drops/R-
xmlbuddy_2.0.62
用于xml开发,可以用来编辑web.xml文件
官方下载地址:http://www.xmlbuddy.com/
org.objectweb.lomboz_
用于web开发,支持jsp,servlet等等的高亮显示和编辑
官方下载地址:http://forge.objectweb.org/PRojects/lomboz/
ajdt_1.2_for_eclipse_3.0
用于aspectJ开发,专为eclipse开发的AspectJ插件
官方下载地址:http://www.xmlbuddy.com/
VE-runtime-
安装以上两个插件时必备,一个相关的类包含在此插件中。The Eclipse Visual Editor project is a vendor-neutral, open development platform supplying frameworks for creating GUI builders, and exemplary, extensible tool implementations for Swing/JFC and SWT/RCP. These tools are exemplary in that they verify the utility of the Eclipse Visual Editor frameworks, illustrate the appropriate use of those frameworks, and support the development and maintenance of the Eclipse Visual Editor Platform itself.
官方下载地址:http://www.xmlbuddy.com/
GEF-runtime-
安装VE时必备,The Graphical Editing Framework (GEF) allows developers to take an existing application model and quickly create a rich graphical editor.
官方下载地址:
http://download.eclipse.org/tools/gef/downloads/drops/R-
emf-sdo-runtime-
安装VE时必备,EMF is a modeling framework and code generation facility for building tools and other applications based on a strUCtured data model. From a model specification described in XMI, EMF provides tools and runtime support to produce a set of java classes for the model, a set of adapter classes that enable viewing and command-based editing of the model, and a basic editor. Models can be specified using annotated Java, XML documents, or modeling tools like Rational Rose, then imported into EMF. Most important of all, EMF provides the foundation for interOperability with other EMF-based tools and applications.
官方下载地址:
http://download.eclipse.org/tools/emf/downloads/drops/
[说明] 现在最高版本的ajdt支持到eclipse
2、下载完成后解压进行安装:help -> softwareupdate -> find and install -> …from local….
3、进行配置window -> perspective
配置aspectj:
不需要非凡配置
配置lomboz:
A、设置jdk tools.jar位置,为安装的j2sdk目录
B、配置server definition:选择Apache Tomcat : tomcat5.0.x,设置其Server lib和project lib,可以把%tomcat_home%/common/lib一些相关的包都放进去,有可能是必须放,注重,某些版本据说可能是
\servers,tomcat5.0.x配置文件tomcat50x.server文件,将两处-Djava.endorsed.dirs=,
修改为如下:
-Djava.endorsed.dirs="${serverRootDirectory}/common/endorsed"
4、配置window -> customize perspective,将aspectj和lomboz相关的项目都给添加到new中,这样就可以通过“新建“来建立相应的工程文件。
二、 集成AspectJ到Web工程中
5、新建一个AspectJ工程
6、在此工程中新建一个Lomboz J2EE Module
7、新建一个Servlet,并设置其url-mapping
/*
* Created on
*
* @Author:Jonathan Q. Bo from tju.MSNrl
* MyBlog:http://blog.csdn.net/jonathan_q_bo
*
*/
package org.tju.msnrl.jonathan.aspectj;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* @author Administrator
* 2005-8-3 14:46:22
*/
public class HelloWorld extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
//TODO Method stub generated by Lomboz
ServletOutputStream out = response.getOutputStream( );
out.println("<h1>Hello World from an aspect-oriented Servlet!</h1>");
}
}
8、新建一个Aspect,拦截其doGet(..),在其执行之前和之后作相应的advice
/*
* Created on
*
* @Author:Jonathan Q. Bo from tju.msnrl
* MyBlog:http://blog.csdn.net/jonathan_q_bo
*
*/
package org.tju.msnrl.jonathan.aspectj;
import java.io.IOException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* @author Administrator
* 2005-8-3 15:43:54
*/
public aspect HelloWorldAspect {
public pointcut captureHttpRequest(HttpServletRequest request,
HttpServletResponse response) :
execution(public void HelloWorld.doGet(HttpServletRequest,
HttpServletResponse)) &&
args(request, response);
before(HttpServletRequest request, HttpServletResponse response)
throws IOException :
captureHttpRequest(request, response)
{
response.setContentType("text/Html");
ServletOutputStream out = response.getOutputStream( );
out.println("<html>");
out.println("<head><title>Adding a title using AspectJ!</title></head>");
out.println("<body>");
}
after(HttpServletRequest request, HttpServletResponse response)
throws IOException :
captureHttpRequest(request, response)
{
ServletOutputStream out = response.getOutputStream( );
out.println("</body>");
out.println("</html>");
}
}
9、部署工程,默认会将工程打包成war文件部署,试验发现,war文件执行时会报错,所以,需要改写build.xml文件,原build.xml文件将编译好的文件统一放到dist文件夹中,然后对其打包war,简单修改,只需要将打包过程去掉,将dist文件夹直接拷贝到tomcat_home/webapps/下就可以了
<project name="webmodulebuilder" default="deploy" basedir=".">
<!-- set global properties for this build -->
<property file="build.properties"/>
<property name="dist" value="../../dist" />
<property name="deploy.dir" value="C:/Program Files/Apache Software Foundation/Tomcat 5.0/webapps/rbac" />
<property name="web" value="../" />
<target name="init">
<!-- Create the dist directory structure used by compile
and copy the deployment descriptors into it-->
<mkdir dir="${dist}"/>
- ››基于IP地址的vsftp服务器
- ››基于MySQL 水平分区的优化示例
- ››基于CentOS5的Linux下pptp和openvpn的搭建及配置
- ››基于JavaScript的网页版塔防游戏
- ››基于Android平台 QQ大战360手机游戏爆红
- ››基于Windows Azure的云计算应用设计
- ››基于AES算法实现对数据的加密
- ››基于SoPC目标板Flash编程设计的创建及应用
- ››基于SolidWarks齿轮机构的运动分析与仿真
- ››基于Windwos Server 2008故障转移群
- ››基于JavaScript的REST客户端框架
- ››基于JavaScript和CSS的Web图表框架横向对比
更多精彩
赞助商链接