Я создал простое приложение, использующее 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 (, и будет нелегко иметь глобальную библиотеку в нашей реальной -жизненной производственной системе ), поэтому я пытаясь локализовать все необходимое в простом (но большом )военном файле. Любые мысли о том, как добиться такой инкапсуляции?