After trying Arytom's solution without any luck, we tried investigating joshaidan's suggestion. Upon further digging we found the Oracle support document: 2645919.1
From that article:
Cause
Application package contains incompatible jar library / class. WebLogic internally uses ASM library to check class bytecode version, it has following similar code to check bytecode version is compatible, or IllegalArgumentException will be thrown.
https://github.com/llbit/ow2-asm/blob/master/src/org/objectweb/asm/ClassReader.java
166 public ClassReader(final byte[] b, final int off, final int len) {
167 this.b = b;
168 // checks the class version
169 if (readShort(off + 6) > Opcodes.V1_8) {
170 throw new IllegalArgumentException();
171 }
Update class file version to 53.0
When generating class files in conjunction with -target 9 (specified either explicitly or implicitly), javac will generate class files with a major version number of 53. For details of version 53 class files, see the Java Virtual Machine Specification.
The JDK classes themselves mostly use version 53 class files.
Tools or libraries that rely on ASM or other bytecode manipulation libraries may need updated versions of these libraries to work with version 53 class files.
Solution
Replace the issue class/ library with compatible release.
[oracle@sandbox ~]$ cd ~/war
[oracle@sandbox war]$ for i in `find . -name '*.jar'`; do unzip -qo $i -d $i.delemete; done
[oracle@sandbox war]$ find . -name \*.class | xargs file | sort -t, -k2 | tail -n 10
./WEB-INF/js.jar.delemete/examples/webservices/jaxws/InvokeTransactionResponse.class: compiled Java class data, version 52.0 (Java 1.8)
./WEB-INF/js.jar.delemete/examples/webservices/jaxws/MyClient$1.class: compiled Java class data, version 52.0 (Java 1.8)
./WEB-INF/js.jar.delemete/examples/webservices/jaxws/MyClient.class compiled Java class data, version 52.0 (Java 1.8)
./WEB-INF/js.jar.delemete/examples/webservices/jaxws/ObjectFactory.class: compiled Java class data, version 52.0 (Java 1.8)
./WEB-INF/js.jar.delemete/examples/webservices/jaxws/package-info.class: compiled Java class data, version 52.0 (Java 1.8)
./WEB-INF/js.jar.delemete/examples/webservices/jaxws/SimpleClientJwsImpl.class compiled Java class data, version 52.0 (Java 1.8)
./WEB-INF/js.jar.delemete/examples/webservices/jaxws/SimpleClientService.class: compiled Java class data, version 52.0 (Java 1.8)
./WEB-INF/lib/jackson-annotations-2.10.2.jar.delemete/module-info.class compiled Java class data, version 53.0
./WEB-INF/lib/jackson-core-2.10.2.jar.delemete/module-info.class: compiled Java class data, version 53.0
./WEB-INF/lib/jackson-databind-2.10.2.jar.delemete/module-info.class: compiled Java class data, version 53.0
The thing to note in the above example is that the last 3 lines are class files with version 53.0, which are going to be the offending classes.
Upon investigation of our app, using Spring boot 1.5.6.RELEASE we found that the Jersey dependency was pulling in asm-all-repackaged:2.5.0-b32
which is compiled for JDK9. Adding the following explicit dependency addressed the issue, the solution to which was found here: https://github.com/jersey/jersey/issues/3617
<!--
Work around bug where Jersey pulls in asm-all-repackaged:2.5.0-b32, which is compiled for JDK9. This prevents deployment to WebLogic 12.1.3 on JDK8
https://github.com/jersey/jersey/issues/3617
Oracle Support Doc ID 2645919.1
-->
<dependency>
<groupId>org.glassfish.hk2.external</groupId>
<artifactId>asm-all-repackaged</artifactId>
<version>2.4.0</version>
</dependency>