I run into run-time exceptions when testing in WAS 8.5.1LP a basic spring/maven application that currently works in Tomcat 7 : javax.servlet.ServletException: Filter CharacterEncodingFilter: could not be loaded

Java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;[Ljava/lang/Object;Ljava/lang/Throwable;)V
at org.apache.commons.logging.impl.SLF4JLocationAwareLog.debug(SLF4JLocationAwareLog.java:133)
at org.springframework.core.env.AbstractEnvironment.<init>(AbstractEnvironment.java:100)
at org.springframework.core.env.StandardEnvironment.<init>(StandardEnvironment.java:54)
at org.springframework.web.context.support.StandardServletEnvironment.<init>(StandardServletEnvironment.java:43)
at org.springframework.web.filter.GenericFilterBean.<init>(GenericFilterBean.java:94)
at org.springframework.web.filter.OncePerRequestFilter.<init>(OncePerRequestFilter.java:40)
at org.springframework.web.filter.CharacterEncodingFilter.<init>(CharacterEncodingFilter.java:43)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:308)
at java.beans.Beans.instantiate(Beans.java:204)
at java.beans.Beans.instantiate(Beans.java:48)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager._loadFilter(WebAppFilterManager.java:524)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.loadFilter(WebAppFilterManager.java:466)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.getFilterInstanceWrapper(WebAppFilterManager.java:305)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.getFilterChain(WebAppFilterManager.java:377)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:883)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1016)
at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3914)
at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:304)
at com.ibm.ws.webcontainer.osgi.VirtualHost.handleRequest(VirtualHost.java:213)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:944)
at com.ibm.ws.webcontainer.osgi.WebContainer$1.run(WebContainer.java:1022)
at com.ibm.ws.dispatcher.http.internal.channel.HttpDispatcherLink$TaskWrapper.run(HttpDispatcherLink.java:310)
at com.ibm.ws.threading.internal.Worker.executeWork(Worker.java:398)
at com.ibm.ws.threading.internal.Worker.run(Worker.java:380)
at java.lang.Thread.run(Thread.java:662)

Seems that the issue is related to a conflict between jar versions of slf4j-simple-1.5.8.jar used by WAS and those embedded in my war archive slf4j-simple-1.6.2.jar (tomcat doesn't actually embedd those libs).

Do you know if there is a workaround on the server side to support those newer library versions or is it necessary to modify the web application to match WAS 8.5.1 LP embedded versions ?

When you updated the configuration originally to have a <classloader /> did you do a clean start of the server? Some classloader changes are, incorrectly, only picked up after a clean start of the server and I believe this might be one of them.

In any case we have released 8.5.0.1 which fixes the bug that your switch to parent last classloading was working around. If you could try again with 8.5.0.1 I would be interested to know if your application works without the classloader configuration.

When you updated the configuration originally to have a <classloader /> did you do a clean start of the server? Some classloader changes are, incorrectly, only picked up after a clean start of the server and I believe this might be one of them.

In any case we have released 8.5.0.1 which fixes the bug that your switch to parent last classloading was working around. If you could try again with 8.5.0.1 I would be interested to know if your application works without the classloader configuration.