Hi Martin,
It looks like SDK version 8.1 is not compatible with SLF4J anymore.
With version 7.0, we had no issues using SLF4J (together with log4j-over-slf4j) for logging of Avaya DMCC SDK and JTAPI SDK.
We now managed to avoid the IncompatibleClassChangeError issue described here by adding log4j.jar to our Classpath.
But this is not, what we really want, since we now have to deal with two different log files and configuration is required for two loggers.
The incompatibility with SLF4J / log4j-over-slf4j seems to be caused by the newly added avaya-commong-logging-0.0.4.jar.
These traces are showing the usage of some log4j classes that are not implemented by log4j-over-slf4j (or :
Without log4j.jar in Classpath: [Loaded com.avaya.mvap.svcproxy.prov.BaseServiceProvider from file:/C:/Eclipse%20Workspaces/NEO_60/avayatest/lib_8.1/proxy.jar]
[Loaded com.avaya.mvap.svcproxy.prov.RemoteServiceProvider from file:/C:/Eclipse%20Workspaces/NEO_60/avayatest/lib_8.1/proxy.jar]
[Loaded com.avaya.proxy.binding.Resolver from file:/C:/Eclipse%20Workspaces/NEO_60/avayatest/lib_8.1/avaya-common.jar]
[Loaded com.avaya.router.Router from file:/C:/Eclipse%20Workspaces/NEO_60/avayatest/lib_8.1/proxy.jar]
[Loaded com.avaya.common.logging.Logger from file:/C:/Eclipse%20Workspaces/NEO_60/avayatest/lib_8.1/avaya-common-logging-0.0.4.jar]
[Loaded org.apache.log4j.Priority from file:/C:/Eclipse%20Workspaces/NEO_60/avayatest/lib_8.1/log4j-over-slf4j-1.7.30.jar]
[Loaded org.apache.log4j.Level from file:/C:/Eclipse%20Workspaces/NEO_60/avayatest/lib_8.1/log4j-over-slf4j-1.7.30.jar]
[Loaded com.avaya.common.logging.Level from file:/C:/Eclipse%20Workspaces/NEO_60/avayatest/lib_8.1/avaya-common-logging-0.0.4.jar]
[Loaded org.apache.log4j.spi.ErrorHandler from file:/C:/Eclipse%20Workspaces/NEO_60/avayatest/lib_8.1/log4j-over-slf4j-1.7.30.jar]
Exception in thread "main" [Loaded java.lang.Throwable$PrintStreamOrWriter from C:\Program Files\Java\jdk1.8.0_152\jre\lib\rt.jar]
[Loaded java.lang.Throwable$WrappedPrintStream from C:\Program Files\Java\jdk1.8.0_152\jre\lib\rt.jar]
[Loaded java.util.IdentityHashMap$KeySet from C:\Program Files\Java\jdk1.8.0_152\jre\lib\rt.jar]
java.lang.IncompatibleClassChangeError: Implementing class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
Same section after adding log4j.jar to Classpath: [Loaded com.avaya.mvap.svcproxy.prov.BaseServiceProvider from file:/C:/Eclipse%20Workspaces/NEO_60/avayatest/lib_8.1/proxy.jar]
[Loaded com.avaya.mvap.svcproxy.prov.RemoteServiceProvider from file:/C:/Eclipse%20Workspaces/NEO_60/avayatest/lib_8.1/proxy.jar]
[Loaded com.avaya.proxy.binding.Resolver from file:/C:/Eclipse%20Workspaces/NEO_60/avayatest/lib_8.1/avaya-common.jar]
[Loaded com.avaya.router.Router from file:/C:/Eclipse%20Workspaces/NEO_60/avayatest/lib_8.1/proxy.jar]
[Loaded com.avaya.common.logging.Logger from file:/C:/Eclipse%20Workspaces/NEO_60/avayatest/lib_8.1/avaya-common-logging-0.0.4.jar]
[Loaded org.apache.log4j.Priority from file:/C:/Eclipse%20Workspaces/NEO_60/avayatest/lib_8.1/log4j-1.2.17.jar]
[Loaded org.apache.log4j.Level from file:/C:/Eclipse%20Workspaces/NEO_60/avayatest/lib_8.1/log4j-1.2.17.jar]
[Loaded com.avaya.common.logging.Level from file:/C:/Eclipse%20Workspaces/NEO_60/avayatest/lib_8.1/avaya-common-logging-0.0.4.jar]
[Loaded org.apache.log4j.spi.OptionHandler from file:/C:/Eclipse%20Workspaces/NEO_60/avayatest/lib_8.1/log4j-1.2.17.jar]
[Loaded org.apache.log4j.spi.ErrorHandler from file:/C:/Eclipse%20Workspaces/NEO_60/avayatest/lib_8.1/log4j-1.2.17.jar]
[Loaded org.apache.log4j.spi.AppenderAttachable from file:/C:/Eclipse%20Workspaces/NEO_60/avayatest/lib_8.1/log4j-1.2.17.jar]
[Loaded org.apache.log4j.Category from file:/C:/Eclipse%20Workspaces/NEO_60/avayatest/lib_8.1/log4j-1.2.17.jar]
[Loaded org.apache.log4j.Logger from file:/C:/Eclipse%20Workspaces/NEO_60/avayatest/lib_8.1/log4j-1.2.17.jar]
[Loaded java.lang.management.ManagementFactory from C:\Program Files\Java\jdk1.8.0_152\jre\lib\rt.jar]
Is there a chance to make Avaya DMCC SDK compatible with SLF4J / log4j-over-slf4j again?
SLF4J is a widely used logging abstraction layer that usually seamlessly replaces log4j, as long as no special features are used.
Regards,
Claus
|