Tôi sử dụng phiên bản Jersey 1.18.1 (com.sun.jersey), Spring và Java 8. Nếu tôi đặt biểu thức Java 8 Javada trong dịch vụ REST, nó sẽ bị treo. Nếu tôi loại bỏ biểu thức lambda, nó hoạt động.Jersey và Java 8 (biểu thức Lambda)
@Service
@Path("/hello")
public class Hello {
@GET
public String hello() {
new ArrayList<String>().stream().filter((str) -> str.length() > 0);
return "hello";
}
}
tôi sử dụng com.sun.jersey (1.18.1 phiên bản).
Full stacktrace:
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)
Hãy cho tôi biết làm thế nào để sửa chữa nó.
bản sao có thể có của [Biểu thức Lambda Java 8 trong Dịch vụ REST không hoạt động] (http://stackoverflow.com/quest ions/22917462/java-8-lambda-expression-in-rest-service-not-working) – andersschuller
Có, nhưng giải pháp này không hoạt động. Tôi đã thử nó. – Malahov
@Malahov vì vậy bạn đã thử với Jersey 2.7+ và gặp vấn đề tương tự? – assylias