2013-06-04 3 views
1

ПроблемаКак настроить JAVA_OPTS для AspectJ для работы в Tomcat, работающем как служба на Windows Server?

Мне нужно интегрировать AspectJ код в существующие приложения, работающие на Tomcat, но я думаю, что я не устанавливать JAVA_OPTS правильно.

Наш поставщик создал некоторый код AspectJ, который передает информацию о идентификаторе пользователя в объект CONTEXT_INFO() в MSSQLServer Connection. Это значит, что в созданном нами триггере базы данных аудита мы можем зафиксировать идентификатор пользователя, который внес изменения.

То, что я сделал

  1. Добавлена ​​следующего код нашего триггера базы данных

    DECLARE @appUserID INT

    SET @appUserID = ISNULL (REPLACE (CONVERT (VARCHAR (128), CONTEXT_INFO()), CHAR (0), ''), '0');

  2. Добавлено aspectjrt.jar в веб-приложение WEB-INF \ lib.

  3. Добавлено vendorAspectJCode.jar в веб-приложение WEB-INF \ lib.
  4. Добавлено aspectjweaver.jar в Lib папку TOMCAT в \ tomcat7.0.27 \ Lib
  5. Edited catalina.bat следующим:

есть строка кода, который выглядит следующим образом :

set JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG% 

Я изменил, что

set JAVA_OPTS=”%JAVA_OPTS% %LOGGING_CONFIG% -javaagent:D:\tomcat\tomcat7.0.27\lib\aspectjweaver.jar" 

но, похоже, это не сработало.

Итак, я попытался установить его так, добавив новый набор JAVA_OPTS:

set JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG% 
set JAVA_OPTS="-javaagent:D:\tomcat\tomcat7.0.27\lib\aspectjweaver.jar" 

, но это, похоже, не делать трюк либо

После внесения следующих изменений и выполнения теста через внешний интерфейс веб-приложения идентификатор пользователя, который был вставлен в базу данных, был , поэтому мне сообщается, что что-то не было сделано правильно, а часть, которую мне менее комфортно со всеми вышеперечисленными шагами, была Шаг 5.

  1. Кто-нибудь знает, правильный ли синтаксис для настройки JAVA_OPTS?
  2. или есть ли другое место?

ответ

0

После долгих проб и ошибок я выяснил, как интегрировать AspectJ в Tomcat работает как служба на сервере Windows,. Я не знаю, почему, но смелый материал был причиной моих проблем.

Конечно, как я уже упоминал в моем вопросе выше вам нужны следующие условия:

  1. Добавить aspectjrt.jar в WEB-INF \ папку Lib веб-приложений.
  2. Добавить vendorAspectJCode.jar в веб-приложение WEB-INF \ lib.
  3. Добавить aspectjweaver.jar в Lib папку для Tomcat \ tomcat7.0.27 \ Lib

Установка -javaagent: PathToMyAspectjweaver \ aspectjweaver.jar в service.bat не работает. Таким образом, я должен был установить его в реестре вместе с деинсталляции/установка службы Tomcat для изменения подхвачена можно сделать следующим образом:

  1. Сначала я рекомендую поворота UAC выключен и, чтобы убедиться, что вы являются Администратор
  2. Стоп Служба Tomcat, если работает.
  3. Удалить обслуживание tomcat.
  4. Подтвердите в службах Windows, что службы больше не существует.
  5. Подтвердите в реестре Windows, что все, что связано с сервисом, было удалено. Если нет, сделайте это вручную.
  6. Установите обслуживание Tomcat.
  7. Подтвердите в службах Windows, которые были созданы службой.
  8. Найти службы в реестре и редактировать переменную Options apppending следующее:

    -javaagent: PathToMyAspectjweaver \ aspectjweaver.jar

Я создал пару рукокрылых файлов для них шаги. Шаги 2 и 3 будет выглядеть нечто похожее на это ниже (TomcatServiceUninstall.bat):

echo OFF 
ECHO Removing Tomcat Service... 
sc stop YourServiceName 
sc delete YourServiceName 
ECHO Removing Registry Key containing config data for Tomcat7 
REG DELETE "HKLM\SOFTWARE\Wow6432Node\Apache Software Foundation\Procrun 2.0\YourServiceName" /f 
REG DELETE "HKLM\SOFTWARE\Wow6432Node\Apache Software Foundation\Tomcat\7.0" /f 
ECHO Uninstall Complete - File Directories remain intact. 

Шаг 6 будет выглядеть, что (TomcatServiceInstall.bat)

ECHO OFF 
ECHO Running Service.bat to install the Tomcat 7 - YourServiceName - Service 
cd "C:\Path to your tomcat\tomcat7.0.27\bin" 
service.bat install