Mal*_*hov 10 java rest lambda jersey java-8
我使用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<String>().stream().filter((str) -> str.length() > 0);
return "hello";
}
}
Run Code Online (Sandbox Code Playgroud)
我使用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)
Run Code Online (Sandbox Code Playgroud)
请告诉我如何解决它.
Fed*_*zza 10
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.
归档时间: |
|
查看次数: |
5386 次 |
最近记录: |