Tomcat 7.0.27 でホストされているサーバー側で Spring Data 3.1.0.RELEASE と Eclipselink 2.4 を使用する単純なアプリを作成しました。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に(カスタム)グローバルライブラリを持ちたくありません(そして、実際のプロダクションシステムでグローバルライブラリを持つのは簡単ではありません)ので、必要なものすべてをシンプルにローカライズしようとしています(まだ大きい)戦争ファイル。そのようなカプセル化を達成する方法について何か考えはありますか?