Unable to process Jar entry [module-info.class] from Jar
After updating the JAX-WS libraries of my current project to version 2.3.0, I got an error message in the log file when starting up Tomcat:
SEVERE: Unable to process Jar entry [module-info.class] from Jar [file:/.../jaxws-api-2.3.0.jar] for annotations
org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 19
We’re using Tomcat 8.5, running with Java 8.
The presence of the file module-info.class within the jar file points out to the fact that version 2.3.0 of JAX-WS is ready to be used with Java 9. With the module info, a module of the Java Platform Module System declares other modules on which it depends, as well as the packages it wants to expose to other modules.
When analyzing the jar file I found that, while the Java classes have been compiled with Java 7, the module-info.class was (unsurprisingly) compiled with Java 9. No wonder that a ClassFormatException occurs when running the application with Java 8.
So what to do with the exception?
- Just ignore it, since it does no harm
- Disable JarScanner
- Run Tomcat with Java 9