<font size=2 face="sans-serif">Hi,</font>
<br>
<br><font size=2 face="sans-serif">I just joined this list, so first hi
from Germany ;-)</font>
<br>
<br><font size=2 face="sans-serif">When I use slf4j-1.8.0-beta2 in an application
that is being deployed to our Websphere 9 server, I see error messages
in the deployment manager console:</font>
<br>
<br>
<br><font size=1 face="Lucida Console">(...)</font>
<br><font size=1 face="Lucida Console">[2/18/19 15:51:31:862 CET] 000022bd
WSModuleDescr E   WSWS7011E: The configuration for the myapp-war-2019.4.0-SNAPSHOT.war
application module cannot load correctly.</font>
<br><font size=1 face="Lucida Console">The following error occurred:  com.ibm.ws.metadata.annotations.AnnotationException:
Annotation processing failed for class:  module-info.class</font>
<br><font size=1 face="Lucida Console">        at com.ibm.ws.metadata.annotations.AnnotationConfigReader.getAnnotationData(AnnotationConfigReader.java:883)</font>
<br><font size=1 face="Lucida Console">        at com.ibm.ws.metadata.annotations.AnnotationConfigReader.getAnnotationDataForZippedArchive(AnnotationConfigReader.java:766)</font>
<br><font size=1 face="Lucida Console">        at com.ibm.ws.metadata.annotations.AnnotationConfigReader.getAnnotationData(AnnotationConfigReader.java:696)</font>
<br><font size=1 face="Lucida Console">        at com.ibm.ws.metadata.annotations.AnnotationConfigReader.populateModuleData(AnnotationConfigReader.java:353)</font>
<br><font size=1 face="Lucida Console">        at com.ibm.ws.metadata.MetaDataOrchestrator.getModuleData(MetaDataOrchestrator.java:112)</font>
<br><font size=1 face="Lucida Console">        at com.ibm.ws.websvcs.annotations.collector.WASAnnotationCollector.getMDO(WASAnnotationCollector.java:258)</font>
<br><font size=1 face="Lucida Console">        at com.ibm.ws.websvcs.annotations.collector.WASAnnotationCollector.collect(WASAnnotationCollector.java:146)</font>
<br><font size=1 face="Lucida Console">        at com.ibm.ws.websvcs.desc.WSModuleDescriptorImpl.getClassDataObjects(WSModuleDescriptorImpl.java:1458)</font>
<br><font size=1 face="Lucida Console">        at com.ibm.ws.websvcs.desc.WSModuleDescriptorImpl.initDBCMap(WSModuleDescriptorImpl.java:2153)</font>
<br><font size=1 face="Lucida Console">        at com.ibm.ws.websvcs.desc.WSModuleDescriptorImpl.buildJAXWSServiceRefs(WSModuleDescriptorImpl.java:1137)</font>
<br><font size=1 face="Lucida Console">        at com.ibm.ws.websvcs.desc.WSModuleDescriptorImpl._containsWebServiceClients(WSModuleDescriptorImpl.java:639)</font>
<br><font size=1 face="Lucida Console">        at com.ibm.ws.websvcs.desc.WSModuleDescriptorImpl.containsWebServiceClients(WSModuleDescriptorImpl.java:611)</font>
<br><font size=1 face="Lucida Console">        at com.ibm.ws.websvcs.deploy.WSCacheWriter.writeModuleCache(WSCacheWriter.java:583)</font>
<br><font size=1 face="Lucida Console">        at com.ibm.ws.websvcs.deploy.WSCacheWriter.writeApplicationCache(WSCacheWriter.java:242)</font>
<br><font size=1 face="Lucida Console">        at com.ibm.ws.websvcs.deploy.WSCacheWriter.writeApplicationCache(WSCacheWriter.java:167)</font>
<br><font size=1 face="Lucida Console">        at com.ibm.ws.websvcs.deploy.PersistentStorageInstallSaveTask.performTask(PersistentStorageInstallSaveTask.java:196)</font>
<br><font size=1 face="Lucida Console">        at com.ibm.ws.management.application.sync.AppBinaryProcessor$ExpandApp.expand(AppBinaryProcessor.java:1770)</font>
<br><font size=1 face="Lucida Console">        at com.ibm.ws.management.application.sync.AppBinaryProcessor$AppBinThread.run(AppBinaryProcessor.java:1276)</font>
<br><font size=1 face="Lucida Console">        at java.lang.Thread.run(Thread.java:811)</font>
<br><font size=1 face="Lucida Console">Caused by: java.lang.IllegalArgumentException</font>
<br><font size=1 face="Lucida Console">        at org.objectweb.asm.ClassReader.<init>(Unknown
Source)</font>
<br><font size=1 face="Lucida Console">        at org.objectweb.asm.ClassReader.<init>(Unknown
Source)</font>
<br><font size=1 face="Lucida Console">        at org.objectweb.asm.ClassReader.<init>(Unknown
Source)</font>
<br><font size=1 face="Lucida Console">        at com.ibm.ws.metadata.annotations.AnnotationConfigReader.getAnnotationData(AnnotationConfigReader.java:836)</font>
<br><font size=1 face="Lucida Console">        ...
18 more</font>
<br><font size=1 face="Lucida Console">(...)</font>
<br>
<br><font size=2 face="sans-serif">Switching back to the older 1.7.25 version
lets this error message disappear.</font>
<br>
<br><font size=2 face="sans-serif">The reason is that Websphere uses Java
8 which cannot parse / process the module-info.class that was compiled
with Java 9.</font>
<br>
<br>
<br><font size=2 face="sans-serif">Solution for these kinds of problems:</font>
<br><font size=2 face="sans-serif">Move the class to META-INF/versions/9
and mark the resulting Jar as a multi-release. See [1] for how to do this.</font>
<br>
<br>
<br><font size=2 face="sans-serif">What do you think?</font>
<br><font size=2 face="sans-serif">I can create a pull request on Github
if you like.</font>
<br>
<br>
<br><font size=2 face="sans-serif">Regards</font>
<br>
<br><font size=2 face="sans-serif">Thorsten</font>
<br>
<br>
<br><font size=2 face="sans-serif">[1] </font><a href="https://github.com/apache/maven-compiler-plugin/blob/master/src/it/multirelease-patterns/singleproject-runtime/pom.xml"><font size=2 color=blue face="sans-serif">https://github.com/apache/maven-compiler-plugin/blob/master/src/it/multirelease-patterns/singleproject-runtime/pom.xml</font></a>