Ich habe eine einfache App erstellt, die Spring Data 3.1.0.RELEASE verwendet und Eclipselink 2.4 auf der Serverseite - die im Tomcat 7.0.27 gehostet wird. In MyWebApp/META-INF/context.xml habe ich Frühlings-ClassloaderWie Tomcat mit TomcatInstrumentableClassLoader arbeitet, das in META-INF/context.xml zusammen mit WEB-INF/lib/spring-instrument-tomcat.jar definiert ist
<Loader loaderClass="org.springframework.instrument.classloading.tomcat.TomcatInstrumentableClassLoader"/>
Wenn ich spring-instrument-tomcat.jar
in $TOMCAT_HOME/lib
setzen dann Tomcat läuft MyWebApp gut, aber wenn ich spring-instrument-tomcat.jar
in die $TOMCAT_HOME/webapps/mywebapp/WEB-INF/lib
setzen - Tomcat stirbt mit Ausnahme
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
Context loader Parameter useSystemClassLoaderAsParent
auf false
gesetzt ist auch nicht hilfreich.
Ich möchte keine (benutzerdefinierte) globale Lib in Tomcat haben (und es wird nicht einfach sein, die globale in unserem realen Produktionssystem zu haben), also versuche ich, alle benötigten zu lokalisieren Zeug in einfacher (noch großer) Kriegsakte. Irgendwelche Gedanken darüber, wie man eine solche Kapselung erreicht?
Ich muss Ihre Antwort als richtig behandeln, weil es die beste Lösung ist, die bisher gefunden wurde. Vielen Dank! –