Jersey和Java 8(Lambda表达式)

 NE丰胸茶urghx 发布于 2023-01-09 10:39

我使用Jersey版本1.18.1(com.sun.jersey),Spring和Java 8.如果我在REST服务中放置Java 8 Lambda表达式,它会崩溃.如果我删除lambda表达式,它的工作原理.

@Service
@Path("/hello")
public class Hello {

    @GET
    public String hello() {
        new ArrayList().stream().filter((str) -> str.length() > 0);
        return "hello";
    }

}

我使用com.sun.jersey(1.18.1版本).

完整的堆栈跟踪:

SEVERE: Allocate exception for servlet jersey-serlvet java.lang.ArrayIndexOutOfBoundsException: 52264
    at jersey.repackaged.org.objectweb.asm.ClassReader.readClass(ClassReader.java:1976)
    at jersey.repackaged.org.objectweb.asm.ClassReader.accept(ClassReader.java:464)
    at jersey.repackaged.org.objectweb.asm.ClassReader.accept(ClassReader.java:420)
    at com.sun.jersey.spi.scanning.AnnotationScannerListener.onProcess(AnnotationScannerListener.java:138)
    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)

请告诉我如何解决它.

1 个回答
  • Jersey 1.18与java 8不兼容.从1.19开始,它们增加了java 8的兼容性.

    如果你看看Jersey 1.19发行说明,你可以看到介绍jdk8的支持.

    https://github.com/jersey/jersey-1.x/releases/tag/1.19

    引用1.19标签:

    感谢@cowwoc,您可以在JDK8上运行Jersey 1.x应用程序

    要解决此问题,您必须将Jersey升级到1.19或将java 8降级到7.

    2023-01-09 10:44 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有