gpt4 book ai didi

tomcat - 如何使 Tomcat 与 META-INF/context.xml 中定义的 TomcatInstrumentableClassLoader 以及 WEB-INF/lib/spring-instrument-tomcat.jar 一起工作

转载 作者:行者123 更新时间:2023-11-28 21:47:59 25 4
gpt4 key购买 nike

我构建了一个简单的应用程序,它在服务器端使用 Spring Data 3.1.0.RELEASE 和 Eclipselink 2.4 - 它托管在 Tomcat 7.0.27 中。在 mywebapp/META-INF/context.xml 我有 Spring 类加载器

<Loader loaderClass="org.springframework.instrument.classloading.tomcat.TomcatInstrumentableClassLoader"/>

如果我将 spring-instrument-tomcat.jar 放入 $TOMCAT_HOME/lib 中,则 Tomcat 可以很好地运行 mywebapp,但如果我将 spring-instrument-tomcat. jar$TOMCAT_HOME/webapps/mywebapp/WEB-INF/lib - Tomcat 死于异常

java.lang.IllegalStateException: ClassLoader [org.apache.catalina.loader.WebappClassLoader] does NOT provide an 'addTransformer(ClassFileTransformer)' method. Specify a custom LoadTimeWeaver or start your Java virtual machine with Spring's agent: -javaagent:org.springframework.instrument.jar

上下文加载器参数 useSystemClassLoaderAsParent 设置为 false 也无济于事。

我不想在 Tomcat 中有任何(自定义的)全局库(并且在我们的实际生产系统中拥有全局库并不容易)因此我试图本地化所有需要的东西在简单(但很大)的 war 文件中。关于如何实现这种封装有什么想法吗?

最佳答案

好吧,如果你不想在 Tomcat 的 lib 文件夹中有额外的 jar,唯一的选择(仍然有 Spring/AspectJ LTW 工作)是编辑 tomcat 的运行脚本以将 -javaagent:...instrument.jar 添加到它的JAVA_OPTS 或 CATALINA_OPTS,并删除 context.xml 文件(您不再需要 TomcatInstrumentableClassLoader)。

关于tomcat - 如何使 Tomcat 与 META-INF/context.xml 中定义的 TomcatInstrumentableClassLoader 以及 WEB-INF/lib/spring-instrument-tomcat.jar 一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11246598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com