java - Spring 4.1.9 不适用于 Java 8

标签 java spring eclipse java-8 spring-4

我正在使用带有 jdk-8 的 spring 4.1.9。我正在使用 Eclipse IDE。 我的带有 lambda 表达式的 java 8 代码

Runnable uploadSheet = () -> {
        // My code
};

编译成功但是当我尝试运行项目时,我收到以下异常 -

SEVERE: Servlet threw load() exception
java.lang.ArrayIndexOutOfBoundsException: 18607
at org.objectweb.asm.ClassReader.<init>(Unknown Source)
at org.objectweb.asm.ClassReader.<init>(Unknown Source)
at org.objectweb.asm.ClassReader.<init>(Unknown Source)
at com.sun.jersey.spi.scanning.AnnotationScannerListener.onProcess(AnnotationScannerListener.java:133)
at com.sun.jersey.core.spi.scanning.uri.FileSchemeScanner$1.f(FileSchemeScanner.java:86)
at com.sun.jersey.core.util.Closing.f(Closing.java:71)
at com.sun.jersey.core.spi.scanning.uri.FileSchemeScanner.scanDirectory(FileSchemeScanner.java:83)
at com.sun.jersey.core.spi.scanning.uri.FileSchemeScanner.scan(FileSchemeScanner.java:71)
at com.sun.jersey.core.spi.scanning.PackageNamesScanner.scan(PackageNamesScanner.java:223)
at com.sun.jersey.core.spi.scanning.PackageNamesScanner.scan(PackageNamesScanner.java:139)
at com.sun.jersey.api.core.ScanningResourceConfig.init(ScanningResourceConfig.java:80)
at com.sun.jersey.api.core.PackagesResourceConfig.init(PackagesResourceConfig.java:104)
at com.sun.jersey.api.core.PackagesResourceConfig.<init>(PackagesResourceConfig.java:78)
at com.sun.jersey.api.core.PackagesResourceConfig.<init>(PackagesResourceConfig.java:89)
at com.sun.jersey.spi.container.servlet.WebComponent.createResourceConfig(WebComponent.java:700)
at com.sun.jersey.spi.container.servlet.WebComponent.createResourceConfig(WebComponent.java:678)
at com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:203)
at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:373)
at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:556)
at javax.servlet.GenericServlet.init(GenericServlet.java:160)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1280)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1193)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1088)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5176)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5460)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

当我将代码更改为以下内容时,它起作用了

Runnable uploadSheet = new Runnable() {
        @Override
        public void run() {
            // My Code
    }
};

我可以在 eclipse 中看到已解决的依赖关系,如下所示

resolved dependencies part- 1

resolved dependencies part - 2

enter image description here

我哪里错了?

最佳答案

根据错误,我认为,您应该使用支持 Java 8 的最新版本的 asm.jar。引用 here

关于java - Spring 4.1.9 不适用于 Java 8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47386181/

相关文章:

Java XML 文件写入失败

java - java eclipse代码完成中的这些数字 `10k` , `6k` , `1k` , `210` 是什么意思?

c - 启动失败。在 Eclipse 中找不到二进制文件

android - 应用程序在加载浏览器时崩溃

java - 返回动态对象类型的通用方法

java - 无法使用 REST 服务绘制 Google 图表

java - 将 JSON 添加到 spring rest Controller 中的模型时如何删除转义字符

java - 解析从 API 获取的对象列表

mysql - spring jpa 加入和查询存储库

python - Eclipse 智能引号 - 就像在 Textmate 中一样