我构建了一个简单的应用程序,它在服务器端使用 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 中有任何(自定义)全局库(在我们的现实生产系统中拥有全局库并不容易),因此我试图简单地本地化所有需要的东西(但很大)战争文件。关于如何实现这种封装的任何想法?