如何使用Spring和Tomcat设置加载时编织而不在命令行上使用-javaa
我使用的是Spring 3.2.9,Tomcat 6.0.44 我正在尝试配置我的应用程序的Spring检测提供程序(例如spring-instrumentation.jar)进行加载时编织,当它部署在Tomcat上时. 我有要求不要使用: 我已经读过,我可以通过修改< Context>来配置Spring工具.我的应用程序的Tomcat配置的元素(在Tomcat的server.xml或我的web应用程序的context.xml中).添加适当的< Context> server.xml的元素导致我的应用程序被正确配置为与Spring的检测提供程序一起运行.将它添加到context.xml(见下文)不会导致工作设置. 我有一个META-INF / aop.xml文件,如下所示:
我还指定我想通过将其添加到我的Spring上下文配置来使用加载时编织:
我将这个jar添加到我的应用程序的类路径中: 我做了什么: 启动Tomcat时,如果我使用-javaagent参数在命令行上识别spring-instrument.jar的位置,如下所示:
一切正常. 接下来,我从命令行中删除了“-javaagent:/path/path2/spring-instrument-3.2.9.RELEASE.jar”.
使用此配置,一切都正常.但是我要求不修改Tomcat的server.xml,因为我无法控制server.xml(DevOps会这样做,并且不愿修改它). 接下来我删除了< Context> Tomcat的server.xml中的元素.
但是,当我重新启动Tomcat时,我在日志中收到一条错误消息:
在挖掘之后,我读了一些建议我修改< context:load-time-weaver />我的Spring配置中的元素,如下所示:
并将包含InstrumentationLoadTimeWeaver.class的jar添加到我的类路径中. 但是,当我这样做时,我在日志中收到此错误消息:
任何人都可以解释如何使用Spring和Tomcat设置加载时编织而不使用命令行上的-javaagent,并且不修改server.xml? 最佳答案
这是我设法使用的代码,以删除您提到的异常.
基本上,您必须实现LoadTimeWeavingConfigurer并覆盖方法getLoadTimeWeaver().
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |