Struts 2.5 Java8ClassFinder:';无法读取类';错误

Struts 2.5 Java8ClassFinder:';无法读取类';错误,java,spring,spring-boot,struts2,struts2-jquery,Java,Spring,Spring Boot,Struts2,Struts2 Jquery,我已经将传统Struts 2.5应用程序与Spring Boot 2集成。应用程序功能正常,但在启动时会引发此异常,如何避免此错误?还是可以安全地忽略这一点?多谢各位 我正在使用的主要依赖项: JDK-11.0.4 字符串引导v。2.2.6 struts2 v。2.5.22 struts2 jquery插件v。4.0.3 struts2约定插件v。2.5.22 struts2-java8-support-plugin v。2.5.2 我的Struts配置如下,我正在使用基于注释的动作配置 &

我已经将传统Struts 2.5应用程序与Spring Boot 2集成。应用程序功能正常,但在启动时会引发此异常,如何避免此错误?还是可以安全地忽略这一点?多谢各位

我正在使用的主要依赖项:

  • JDK-11.0.4
  • 字符串引导v。2.2.6
  • struts2 v。2.5.22
  • struts2 jquery插件v。4.0.3
  • struts2约定插件v。2.5.22
  • struts2-java8-support-plugin v。2.5.2
我的Struts配置如下,我正在使用基于注释的动作配置

<?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>

启动时错误日志

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' 
07:33.081信息13309-[main]o.a.s.spring.StrutsSpringObjectFactory:初始化Struts-spring集成。。。
2020-04-26 11:07:33.081信息13309---[main]c.o.xwork2.spring.SpringObjectFactory:将autowire策略设置为name
2020-04-26 11:07:33.082信息13309---[main]o.a.s.spring.StrutsSpringObjectFactory:。。。已成功初始化Struts-Spring集成
2020-04-26 11:07:33.581错误13309---[main]o.a.struts2.convention.Java8ClassFinder:无法读取类[com.xxx.yyy.zzz.action.IndexAction]
java.lang.IllegalArgumentException:null
在org.objectweb.asm.ClassReader.(未知来源)~[asm-5.0.2.jar:5.0.2]
在org.objectweb.asm.ClassReader.(未知来源)~[asm-5.0.2.jar:5.0.2]
在org.objectweb.asm.ClassReader.(未知来源)~[asm-5.0.2.jar:5.0.2]
在org.apache.struts2.convention.Java8ClassFinder.readClassDef(Java8ClassFinder.java:442)~[struts2-java8-support-plugin-2.5.2.jar:2.5.22]
在org.apache.struts2.convention.Java8ClassFinder.access$200(Java8ClassFinder.java:61)~[struts2-java8-support-plugin-2.5.2.jar:2.5.22]
在org.apache.struts2.convention.Java8ClassFinder$InfoBuildingClassVisitor.extractSuperInterface(Java8ClassFinder.java:495)~[struts2-java8-support-plugin-2.5.2.jar:2.5.22]
在org.apache.struts2.convention.Java8ClassFinder$InfoBuildingClassVisitor.visit(Java8ClassFinder.java:482)~[struts2-java8-support-plugin-2.5.2.jar:2.5.22]
在org.objectweb.asm.ClassReader.accept(未知源)~[asm-5.0.2.jar:5.0.2]
在org.objectweb.asm.ClassReader.accept(未知源)~[asm-5.0.2.jar:5.0.2]
在org.apache.struts2.convention.Java8ClassFinder.readClassDef(Java8ClassFinder.java:443)~[struts2-java8-support-plugin-2.5.2.jar:2.5.22]
在org.apache.struts2.convention.Java8ClassFinder.access$200(Java8ClassFinder.java:61)~[struts2-java8-support-plugin-2.5.2.jar:2.5.22]
在org.apache.struts2.convention.Java8ClassFinder$InfoBuildingClassVisitor.extractSuperInterface(Java8ClassFinder.java:495)~[struts2-java8-support-plugin-2.5.2.jar:2.5.22]
在org.apache.struts2.convention.Java8ClassFinder$InfoBuildingClassVisitor.visit(Java8ClassFinder.java:482)~[struts2-java8-support-plugin-2.5.2.jar:2.5.22]
.......
在org.springframework.boot.SpringApplication.run(SpringApplication.java:1215)~[spring-boot-2.2.6.RELEASE.jar:2.2.6.RELEASE]
在com.xxx.yyy.zzz.Application.main(Application.java:18)~[classes/:na]
2020-04-26 11:07:34.078信息13309---[main]o.s.s.concurrent.ThreadPoolTaskExecutor:初始化ExecutorService'applicationTaskExecutor'

“legacy Struts”+JDK-14.0.1,您会发现错误。是的,这并不奇怪为了支持Java14,您需要将ASM从5.0.2版升级到7.2版,希望Struts2能够处理这个问题。有关详细信息,请参阅。抱歉,这是打字错误。。我的意思是jdk-11.0.4(现在已经更正了)。。。无论如何,在将其更新到ASM 8.0后,它工作正常,没有任何问题。。谢谢@Andreas“legacy Struts”+JDK-14.0.1,您会发现错误。是的,这并不奇怪为了支持Java14,您需要将ASM从5.0.2版升级到7.2版,希望Struts2能够处理这个问题。有关详细信息,请参阅。抱歉,这是打字错误。。我的意思是jdk-11.0.4(现在已经更正了)。。。无论如何,在将其更新到ASM 8.0后,它工作正常,没有任何问题。。谢谢你,安德烈亚斯