问题
我需要将 AspectJ 代码集成到在 Tomcat 上运行的现有应用程序中,但我认为我没有正确设置 JAVA_OPTS。
我们的供应商创建了一些 AspectJ 代码,将登录的用户 ID 信息传递给 MSSQLServer Connection 中的 CONTEXT_INFO() 对象。这样一来,在我们创建的审计数据库触发器中,我们就可以捕获进行更改的用户 ID。
我做了什么
将以下代码添加到我们的数据库触发器中
声明 @appUserID INT
SET @appUserID = ISNULL(REPLACE(CONVERT(VarChar(128), CONTEXT_INFO()),CHAR(0), ''), '0');
将aspectjrt.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 的语法是否正确吗?
- 或者是否还有其他地方可以放置它?