在 Glassfish 4 中将 slf4j jar 文件放在哪里?

Where to put slf4j jar file in Glassfish 4?

我正在尝试使用 slf4j 作为 jboss-logging 的日志提供程序,它与 Glassfish 4.1 捆绑在一起。但是无论我将 slf4j jar 文件放在哪里,jboss-logging 都无法找到该 jar。它在服务器启动期间失败并出现以下错误 -

Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory not found by org.jboss.logging.jboss-logging [16
        at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1532)
        at org.apache.felix.framework.BundleWiringImpl.access0(BundleWiringImpl.java:75)
        at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1955)
        at java.lang.ClassLoader.loadClass(Unknown Source)

如何让 slf4j jar 对 jboss-logging 可见?

您可以将 slf4j 罐子放在

<glassfish installation dir>\glassfish\modules\endorsed\  

您还需要添加 bridge/implementation,否则,Glassfish 将无法找到上述 class。您可以根据您的意图在上述认可的文件夹中添加 slf4j-log4jlog4jslf4j-jdk jar 以及 slf4j