java - 使 Struts 2 与 Java 8(遗留 ASM 3)兼容

标签 java struts2 java-8

我正在使用带有 Convention 插件的 Struts 2。 Struts 2 依赖于与 Java 8 不兼容的 ASM 3.3。 它无法发现包含 lambda 或方法引用的操作类。

异常:

2014-06-27 18:47:32,958 ERROR main/com.opensymphony.xwork2.util.finder.ClassFinder: Unable to read class [my.project.Action]
java.lang.ArrayIndexOutOfBoundsException: 30305
    at org.objectweb.asm.ClassReader.readClass(Unknown Source)
    at org.objectweb.asm.ClassReader.accept(Unknown Source)
    at org.objectweb.asm.ClassReader.accept(Unknown Source)
    at com.opensymphony.xwork2.util.finder.ClassFinder.readClassDef(ClassFinder.java:717)
    at com.opensymphony.xwork2.util.finder.ClassFinder.<init>(ClassFinder.java:112)
    at org.apache.struts2.convention.PackageBasedActionConfigBuilder.findActions(PackageBasedActionConfigBuilder.java:390)
    at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildActionConfigs(PackageBasedActionConfigBuilder.java:347)
    at org.apache.struts2.convention.ClasspathPackageProvider.loadPackages(ClasspathPackageProvider.java:53)
    at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:268)
    at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:67)
    at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:445)
    at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:489)
    at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:74)
    at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:57)

ASM 5 似乎支持 Java 8,但 Struts 与它不兼容。

是否有解决此问题的方法?现在我正在考虑修补 Struts/XWork。

最佳答案

你猜怎么着 - 我不得不修补这个东西。

要点:https://gist.github.com/anonymous/017b23c1d7c97c37d167

关于java - 使 Struts 2 与 Java 8(遗留 ASM 3)兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24455349/

相关文章:

java - 创建文件 [...] : Instantiation of bean failed (NullPointerException) 中定义的名称为 'db' 的 bean 时出错

java - 如何在没有 ember-cli 的情况下通过 PHP 或 java 使用 ember js?

struts2 - 是否可以使用 struts 或 JSTL 标签获取全局异常根本原因?

java - "T..."的类型定义规则不明确

java - 当使用 lambda 表达式而不是匿名内部类时,Spring 无法确定泛型类型

java - 我的java没有错误,但没有运行

java - 使用 Spring Data JPA 的服务层中的 Crud 方法

java - 磁贴可以有 Action 类吗?

java - Struts2 - 返回 .jsp 页面的特定部分和/或部分

java - 将具有类似映射结构文本的文件转换为实际的 HashMap