aka*_*_sh 5 tomcat classloader context.xml load-time-weaving spring-data
我构建了一个简单的应用程序,它在服务器端使用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"/>
Run Code Online (Sandbox Code Playgroud)
如果我把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
Run Code Online (Sandbox Code Playgroud)
Context loader参数useSystemClassLoaderAsParent
设置false
也没有帮助.
我不想在Tomcat中拥有任何(自定义)全局库(在现实生产系统中使用全局库并不容易)因此我试图将所有需要的东西本地化(简单)但是很大的战争档案.有关如何实现这种封装的任何想法?
小智 5
好吧,如果您不想在Tomcat的lib文件夹中使用额外的jar,唯一的选择(仍然有Spring/AspectJ LTW工作)是编辑tomcat的运行脚本以将-javaagent:... instrument.jar添加到其JAVA_OPTS或CATALINA_OPTS ,并删除context.xml文件(您将不再需要TomcatInstrumentableClassLoad er).
归档时间: |
|
查看次数: |
16644 次 |
最近记录: |