У меня есть проблема, которую трудно объяснить, так позволяет начать работу:Перехватив метод приложения TOMCAT с АОП
Контекст: У меня есть приложение, работающее на сервере Tomcat Назовём его «админ». Администратор имеет функцию импорта/экспорта. Наше собственное приложение является дополнением к этому, и нам нужно собрать некоторую информацию, когда «admin apps» используют функцию импорта/экспорта.
Задача: Там находится сторонняя банка, содержащая класс ImportController: ~/someFolder/admin/WEB-INF/lib/admin.jar
. Цель состоит в том, чтобы собрать старый идентификатор проекта и новый идентификатор проекта, чтобы наше расширение могло связать наш класс с правильным проектом. Поскольку я знаю подпись метода, хотя я мог бы использовать AOP для этого.
Идея: Идея, с которой я пришел, состоит в том, чтобы положить что-то наподобие idHiJacker.jar
, которое содержало бы один pointcut и совет в ~/someFolder/admin/WEB-INF/lib/
и включало бы временное плетение. Этот совет просто помещает информацию в XML-файл, поэтому наше расширение сможет прочитать его, когда мы захотим вернуть ссылку после импорта проекта.
Также я должен сказать, что я чистый новичок с АОП и веб-материалами. Но я не хочу импортировать монстра для выполнения этой небольшой операции с АОП. В настоящий момент чтения им на AspectJ и AspectWerkz
Вопрос:
- 1) Могу ли я в правильном направлении? Вы видите что-нибудь, что могло бы заставить эту идею не работать вообще?
- 2) Если это возможно, что было бы хорошей практикой сделать это очень чистым способом?
- 3) Должен ли я сделать это с AspectJ? AspectWerkz? Или что-то другое?
- 4) Я делаю это зря? Есть ли более простой способ сделать эту операцию?
Edit: Кроме того, если у вас есть хороший учебник, чтобы связать с ответом, это было бы удивительным
Спасибо за ваше время и ответить
Спасибо за ответ. Проблема у меня есть, это довольно сложно ввести АОП. Я только заметил, что «сервер приложений администратора» запущен со сложным сценарием bash. Поэтому сначала я должен выяснить, как включить время загрузки во времени – drgn
@ drgn ltw не очень сложно. Большая проблема будет заключаться в том, чтобы выяснить, как изменить скрипт, чтобы добавить агента и дополнительную банку. Другой альтернативой является использование времени компиляции для инструментария существующих классов и замены развернутой банки с помощью инструментальной банки. Не знаете, как это работает, если банк подписан. –
После помещения простого aop.xml в WEB-INF, мою банку, которая содержит только аспект (экспортируется из банка eclipse с поддержкой aspectJ), а также добавление javaagent (предыдущий комментарий), это не работает. Проблема в том, что у меня нет сообщения об ошибке, и я поместил опцию verbose в aop.xml, но у меня нет сообщения от ткача. Я должен делать что-то неправильно. – drgn