2014-09-11 77 views
0

环境细节:IBM工作灯6.2多SLF4J绑定

IBM工作灯6.2

甲骨文的Java版本 “1.7.0_67”

自由8.5.5.1

[err] SLF4J: Class path contains multiple SLF4J bindings. 
[err] SLF4J: Found binding in [wsjar:file:/C:/IBM/WebSphere/Liberty/usr/servers/WorklightServer/workarea/org.eclipse.osgi/bundles/69/data/cache/com.ibm.ws.app.manager_ 
gen_a7f562a4-562a-4d33-8c23-98b948303abb/.cache/WEB-INF/lib/worklight-jee-library.jar!/org/slf4j/impl/StaticLoggerBinder.class] 
[err] SLF4J: Found binding in [wsjar:file:/C:/IBM/WebSphere/Liberty/usr/shared/resources/myapp/lib/worklight-jee-library.jar!/org/slf4j/impl/StaticLoggerBinder.class] 
[err] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. 

阅读链接。 Class path contains multiple SLF4J bindings

但在我的情况下,我没有添加库。

为了测试冲突,我已经从usr \ shared \ resources \ myapp中删除了worklight-jee-library.jar,它工作正常。

但这不是解决方案。请建议一种解决方法。

回答

0

看来,您在WAR和共享资源文件夹中包含了worklight-jee-library.jar。因此,将其从WAR或共享资源文件夹中删除。这是解决方案。

1

停止Liberty Server,删除workarea目录并使用--clean选项重新启动Liberty Server。 Liberty概要文件使用workarea作为缓存,并且如果某个类加载的时间与当前时间不相同,则可能发生冲突。 它看起来根据缓存中的条目,worklight-jee-library包含在war文件中。 如果是这种情况,你必须将其从战争中删除。 worklight-jee-library必须用作共享库,不能打包在war文件中。