Struts 2.5 Java8ClassFinder : 'Unable to read class' error

1k Views Asked by At

I've integrated legacy Struts 2.5 application with Spring Boot 2. Application functionality works but it's throwing this exception on startup, how I can avoid this error? or this is safe to ignore ? thank you

main dependencies I'm using:

  • JDK-11.0.4
  • String Boot v. 2.2.6
  • struts2 v. 2.5.22
  • struts2-jquery-plugin v. 4.0.3
  • struts2-convention-plugin v. 2.5.22
  • struts2-java8-support-plugin v. 2.5.2

my Struts config as below and I'am using annotations based action configrations

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
        "http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
    <constant name="struts.enable.DynamicMethodInvocation" value="false" />
    <constant name="struts.devMode" value="true"/>
    <constant name="struts.action.extension" value="html"/>
    <constant name="struts.convention.action.packages" value="com.xxx.yyy.zzz.action"/>
    <constant name="struts.convention.classes.reload" value="false" />
    <constant name="struts.convention.exclude.parentClassLoader" value="false" />
    <constant name="struts.custom.i18n.resources" value="messages" />

    <package name="default" extends="struts-default" namespace="/">
    </package>

    <constant name="struts.ckeditor.allowUploads" value="true" />
    <constant name="struts.ckeditor.allowedFileExtensions" value="jpg,jpeg,png" />
    <constant name="struts.ckeditor.uploadFolder" value="/imageUploads" />
</struts>

Error log on startup

07:33.081  INFO 13309 --- [           main] o.a.s.spring.StrutsSpringObjectFactory   : Initializing Struts-Spring integration...
2020-04-26 11:07:33.081  INFO 13309 --- [           main] c.o.xwork2.spring.SpringObjectFactory    : Setting autowire strategy to name
2020-04-26 11:07:33.082  INFO 13309 --- [           main] o.a.s.spring.StrutsSpringObjectFactory   : ... initialized Struts-Spring integration successfully
2020-04-26 11:07:33.581 ERROR 13309 --- [           main] o.a.struts2.convention.Java8ClassFinder  : Unable to read class [com.xxx.yyy.zzz.action.IndexAction]

java.lang.IllegalArgumentException: null
    at org.objectweb.asm.ClassReader.<init>(Unknown Source) ~[asm-5.0.2.jar:5.0.2]
    at org.objectweb.asm.ClassReader.<init>(Unknown Source) ~[asm-5.0.2.jar:5.0.2]
    at org.objectweb.asm.ClassReader.<init>(Unknown Source) ~[asm-5.0.2.jar:5.0.2]
    at org.apache.struts2.convention.Java8ClassFinder.readClassDef(Java8ClassFinder.java:442) ~[struts2-java8-support-plugin-2.5.2.jar:2.5.22]
    at org.apache.struts2.convention.Java8ClassFinder.access$200(Java8ClassFinder.java:61) ~[struts2-java8-support-plugin-2.5.2.jar:2.5.22]
    at org.apache.struts2.convention.Java8ClassFinder$InfoBuildingClassVisitor.extractSuperInterfaces(Java8ClassFinder.java:495) ~[struts2-java8-support-plugin-2.5.2.jar:2.5.22]
    at org.apache.struts2.convention.Java8ClassFinder$InfoBuildingClassVisitor.visit(Java8ClassFinder.java:482) ~[struts2-java8-support-plugin-2.5.2.jar:2.5.22]
    at org.objectweb.asm.ClassReader.accept(Unknown Source) ~[asm-5.0.2.jar:5.0.2]
    at org.objectweb.asm.ClassReader.accept(Unknown Source) ~[asm-5.0.2.jar:5.0.2]
    at org.apache.struts2.convention.Java8ClassFinder.readClassDef(Java8ClassFinder.java:443) ~[struts2-java8-support-plugin-2.5.2.jar:2.5.22]
    at org.apache.struts2.convention.Java8ClassFinder.access$200(Java8ClassFinder.java:61) ~[struts2-java8-support-plugin-2.5.2.jar:2.5.22]
    at org.apache.struts2.convention.Java8ClassFinder$InfoBuildingClassVisitor.extractSuperInterfaces(Java8ClassFinder.java:495) ~[struts2-java8-support-plugin-2.5.2.jar:2.5.22]
    at org.apache.struts2.convention.Java8ClassFinder$InfoBuildingClassVisitor.visit(Java8ClassFinder.java:482) ~[struts2-java8-support-plugin-2.5.2.jar:2.5.22]
    .......
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1215) ~[spring-boot-2.2.6.RELEASE.jar:2.2.6.RELEASE]
    at com.xxx.yyy.zzz.Application.main(Application.java:18) ~[classes/:na]

2020-04-26 11:07:34.078  INFO 13309 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor' 
0

There are 0 best solutions below