У меня возникла проблема при попытке заставить eclipse и aspectj работать в динамических веб-проектах. Я ищу ткачество времени компиляции, чтобы я мог использовать функции визуализации Eclipse.
Я выполнил следующие шаги:
https://forums.oracle.com/forums/thread.jspa?messageID=8591748
с использованием Eclipse Indigo (3.7) с последним плагином Aspectj eclipse (2.1.3).
Шаги были следующие:
[1] Создать базовый сервлет
//imports omitted
public class MyServlet extends HttpServlet{
public void doGet(HttpServletRequest request, HttpServletResponse response){
PrintWriter out= null;
try {
out = response.getWriter();
out.write("hello from MyServlet");
} catch (IOException e) {
e.printStackTrace();
} finally {
if(out!=null)
out.close();
}
}
}
[2] Добавление сервлета в дескриптор развертывания (web.xml)
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>com.myCompany.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/MyServlet/*</url-pattern>
</servlet-mapping>
</web-app>
[3] Создать аспект
<pre>
<code>package com.myCompany;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public aspect MyServletAspect {
pointcut doGet() :
execution(public void MyServlet.doGet(HttpServletRequest,HttpServletResponse));
after() returning : doGet() {
System.out.println("Hello from doGet (via aspectj)");
}
}
Однако, когда я запускаю это без кубиков - аспект просто не запускается (сервлет пишет в ответ, аспект в консоль). Я сделал что-то подобное для обычного проекта Java, и это прекрасно работает.
Хочу заметить, что существуют инструкции по добавлению aop.xml в каталог META-INF веб-приложения, однако у меня это не сработало.
Наша цель - неинвазивно запускать aspectj в разработке с помощью eclipse для не-Spring Framework (или Maven) проекта - это должно быть легко ... но я не смог заставить его работать.
Были бы полезны любые предложения / ссылки на учебник по ткачеству во время компиляции для веб-приложений в Eclipse. В сервер приложений встроен Tomcat 6 (но при необходимости его можно обновить до Tomcat 7).
Было бы здорово настроить среду разработки во время выполнения, не оказывая влияния на производственный код - если бы его можно было заставить работать.
Отзывы высоко оценены.