2013-07-09 39 views
1

我想通過AspectJ的加載時間從開始命令行Tomcat服務器,這樣的事情在織JVM參數:如何使用AspectJ加載時間與Tomcat編織? (不含春季)

"%JAVA_HOME%\bin\java" 
    -ea %_DEBUG% 
    -Duser.dir="%CATALINA_HOME%\bin" 
    -DTEST_PLUGINS_HOME=%TEST_HOME%\plugins 
    -DTEST_HOME="%TEST_HOME%" 
    -DFrameworksLogFilePath=tomcat\logs\node_jsf.log 
    -DTEST.useNonPooledUUMAuthenticator 
    -DTEST_DOMAINS_FILE="%TEST_DOMAINS_FILE%" 
    -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" 
    -Dcatalina.base="%CATALINA_BASE%" 
    -Dcatalina.home="%CATALINA_HOME%" 
    -Djava.io.tmpdir="%CATALINA_TMPDIR%" 
    -Djava.util.logging.config.file=%CATALINA_HOME%\bin\isplogging.properties 
    %TEST_JAVA_OPTS% 
    -classpath "%CLASSPATH%" 
    -Djava.system.class.loader=org.aspectj.weaver.loadtime.WeavingURLClassLoader 
    -Daj.class.path="%TEST_HOME%\testsrc.jar" 
    -Daj.aspect.path="C:\testAspect.jar;%TEST_HOME%\testsrc.jar" 
    org.apache.catalina.startup.Bootstrap start 

CLASSPATH變量指向aspectjweaver.jar文件。

我已經添加了參數

  • Djava.system.class.loader=org.aspectj.weaver.loadtime.WeavingURLClassLoader
  • Daj.class.path=path-to-jar-file-where-the-aspects-should-be-woven
  • Daj.aspect.path=path-of-jars-where-aspects-are-present(源罐也有一些編譯方面)。

但是,使用上述配置不適用於Tomcat。我是否需要進行與Tomcat classpath或classloader相關的其他更改?如果是的話,請幫助。

我嘗試了沒有Tomcat的同樣的事情,它工作正常。請幫助我。我想在不使用Spring的情況下完成這項工作。

回答

0

好吧,可能我的回答爲時已晚,但我希望它能幫助別人。前段時間我面臨同樣的問題。 兩年過去了,所以我現在使用Tomcat 7和AspectJ 1.8.8。因此,首先你不需要改變系統類加載器。自Java 5以來就有Java代理功能,因此AspectJ現在將其用於加載時編織。 對於Tomcat只是添加到您%CATALINA_HOME%\ setenv.bat:

set JAVA_OPTS=-javaagent:c:\path\to\aspectjweaver.jar 
set CLASSPATH=%CLASSPATH%;c:\path\to\your\aspect 

享受! :)

相關問題