問題
Tomcat で実行されている既存のアプリケーションに AspectJ コードを統合する必要がありますが、JAVA_OPTS を正しく設定していないと思います。
当社のベンダーは、ログインしたユーザー ID 情報を MSSQLServer 接続内の CONTEXT_INFO() オブジェクトに渡す AspectJ コードをいくつか作成しました。これは、作成した監査データベース トリガー内で、変更を行ったユーザー ID をキャプチャできるようにするためです。
私がやった事
データベーストリガーに次のコードを追加しました
DECLARE @appUserID INT
SET @appUserID = ISNULL(REPLACE(CONVERT(VarChar(128), CONTEXT_INFO()),CHAR(0), ''), '0');
spectjrt.jarを Web アプリケーションの WEB-INF\lib フォルダーに追加しました。
- vendorAspectJCode.jarを Web アプリケーションの WEB-INF\lib フォルダーに追加しました。
- aspectjweaver.jarを tomcat の lib フォルダー\tomcat7.0.27\libに追加しました
- 次の内容で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"
しかし、それもうまくいかなかったようです
次の変更を行い、Web アプリケーションのフロント エンドを介してテストを実行した後、データベースに挿入されたユーザー ID は0でした。これは、何かが正しく行われていないことを示しており、すべてについてあまり快適ではないと感じている部分です。上記の手順はステップ 5 でした。
- JAVA_OPTS を設定するための構文が正しいかどうかは誰にもわかりませんか?
- またはそれを置く別の場所があるかどうか?