在WebSphere 8.5上正确配置slf4j和log4j

时间:2014-07-07 08:20:21

标签: log4j websphere slf4j

在WebSphere 8.5上配置slf4j + log4j的正确方法。 我的方法是: *在应用程序的war文件的WEB-INF \ lib中包含slf4j-api *在WebSphere lib中包含绑定ja slf4j-log4j *在war文件外部的JVM类路径中包含log4j.xml。

唯一的问题是它不起作用。它失败并且初始化时出错。 猜猜我的做法是错的?

感谢您的帮助!

这是堆栈跟踪。请注意,slfj-api位于WAR文件的WEB-INF \ lib中:

Caused by: java.lang.NoClassDefFoundError: org.slf4j.spi.LoggerFactoryBinder
    at java.lang.ClassLoader.defineClassImpl(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:295)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:154)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:711)
    at java.net.URLClassLoader.access$400(URLClassLoader.java:92)
    at java.net.URLClassLoader$ClassFinder.run(URLClassLoader.java:1159)
    at java.security.AccessController.doPrivileged(AccessController.java:314)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:594)
    at com.ibm.ws.bootstrap.ExtClassLoader.findClass(ExtClassLoader.java:204)
    at com.ibm.ws.bootstrap.ExtClassLoader.loadClass(ExtClassLoader.java:116)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:690)
    at com.ibm.ws.classloader.ProtectionClassLoader.loadClass(ProtectionClassLoader.java:62)
    at com.ibm.ws.classloader.ProtectionClassLoader.loadClass(ProtectionClassLoader.java:58)
    at com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java:616)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:690)
    at com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java:584)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:690)
    at com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java:584)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:690)
    at org.slf4j.LoggerFactory.bind(LoggerFactory.java:121)
    at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:111)
    at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:268)
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:241)
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:254)
    at no.klp.minside.handler.SoapLoggingHandler.<clinit>(SoapLoggingHandler.java:28)
    at java.lang.J9VMInternals.initializeImpl(Native Method)
    at java.lang.J9VMInternals.initialize(J9VMInternals.java:236)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:80)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:57)`enter code here`
    at java.lang.reflect.Constructor.newInstance(Constructor.java:539)
    at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:147)
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:110)
    at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:280)
    ... 113 more
Caused by: java.lang.ClassNotFoundException: org.slf4j.spi.LoggerFactoryBinder
    at java.net.URLClassLoader.findClass(URLClassLoader.java:599)
    at com.ibm.ws.bootstrap.ExtClassLoader.findClass(ExtClassLoader.java:204)
    at com.ibm.ws.bootstrap.ExtClassLoader.loadClass(ExtClassLoader.java:116)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:690)
    ... 147 more

0 个答案:

没有答案