2013-06-04 79 views
1

問題如何設置JAVA_OPTS以使AspectJ能夠在作爲Windows服務器上的服務運行的Tomcat中工作?

我需要AspectJ的代碼集成到Tomcat上運行現有的應用程序,但我想我沒有正確設置JAVA_OPTS。

我們的供應商創建了通行證登錄的用戶ID信息給CONTEXT_INFO(一些AspectJ的代碼)對象連接的MSSQLServer內。這是爲了在我們創建的審計數據庫觸發器中,我們可以捕獲進行更改的用戶標識。

我做了什麼

  1. 下面的代碼添加到我們的數據庫觸發器

    DECLARE @appUserID INT

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

  2. 添加aspectjrt.jar到Web應用程序WEB-INF \ lib文件夾。

  3. 向web應用程序WEB-INF \ lib文件夾添加vendorAspectJCode.jar
  4. 新增aspectjweaver.jar到編輯catalina.bat中與Tomcat的lib文件夾\ tomcat7.0.27 \ lib中
  5. 如下:

有一行代碼,看起來像這樣:

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應用程序的前端,插入到數據庫中的用戶標識是,所以這告訴我有些事情沒有做好,我對上述所有步驟感到不舒服的部分是第5步。

  1. 有誰知道設置JAVA_OPTS的語法是否正確?
  2. 還是還有其他地方放?

回答

0

大量的試驗和錯誤之後,我發現瞭如何AspectJ的Tomcat中整合作爲運行在Windows服務器上服務。我不知道爲什麼,但粗體的東西是我的問題的原因。

當然,正如我在我的問題上面提到你需要以下前提條件:

  1. aspectjrt.jar添加到web應用的WEB-INF \ lib文件夾。
  2. 添加vendorAspectJCode.jar到Web應用程序WEB-INF \ lib文件夾。
  3. aspectjweaver.jar添加到Tomcat的lib文件夾\ tomcat7.0.27 \ lib中

設置-javaagent:PathToMyAspectjweaver \ aspectjweaver.jarservice.bat沒有工作。因此,我不得不將其設置在註冊表中與卸載沿着/安裝 Tomcat的服務,以做拾起變化如下:

  1. 首先,我建議轉彎UAC關閉,以確保您是一個管理員
  2. 停止 Tomcat服務如果運行。
  3. 刪除 tomcat服務。
  4. 在Windows服務中驗證該服務不再存在。
  5. 驗證 Windows註冊表中與服務相關的所有內容都被刪除了。如果沒有,請手動完成。
  6. 安裝 Tomcat服務。
  7. 在Windows服務中驗證該服務已創建。
  8. 查找註冊表中的服務和編輯變量選項 apppending如下:

    -javaagent:PathToMyAspectjweaver \ aspectjweaver.jar

我已經創建了幾個BAT文件的這些腳步。步驟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 
相關問題