1

It's a learning project for REST. It's based on the jersey-quickstart-webapp.

org.glassfish.jersey.archetypes:jersey-quickstart-webapp (An archetype which contains a quick start Jersey-based web application project.)

I only have java8 sdk installed on my computer. I also configured the maven-compiler-plugin in the pom.xml file to use java 1.8. I'm using tomcat7, maven3, eclipse, and postman.

The start project contains a MyResource.java file, which contains a getIt() method, and I've created a String list in it, and tried to print it with a java8 stream:

@GET
@Produces(MediaType.TEXT_PLAIN)
public String getIt() {
    List<String> strings = Arrays.asList("a", "b", "c");
    strings.stream().forEach(System.out::println);
    return "Got it!";
}

With the stream code line commented, the above code works, and returns the "Got it" string. But when I un-comment it, and start tomcat, it throws an exception (see below), and when I try to send a GET request, it responds with: HTTP Status 500 - Servlet.init() for servlet Jersey Web Application threw exception

I'm kinda stuck, does anyone have an idea why it isn't working?

Exception:

jan. 11, 2016 2:01:11 DU org.apache.catalina.core.ApplicationContext log
SEVERE: StandardWrapper.Throwable
java.lang.ArrayIndexOutOfBoundsException: 3845
    at org.objectweb.asm.ClassReader.accept(ClassReader.java:470)
    at org.objectweb.asm.ClassReader.accept(ClassReader.java:425)
    at org.glassfish.jersey.server.internal.scanning.AnnotationAcceptingListener.process(AnnotationAcceptingListener.java:169)
    at org.glassfish.jersey.server.ResourceConfig.scanClasses(ResourceConfig.java:879)
    at org.glassfish.jersey.server.ResourceConfig._getClasses(ResourceConfig.java:837)
    at org.glassfish.jersey.server.ResourceConfig.getClasses(ResourceConfig.java:752)
    at org.glassfish.jersey.server.ResourceConfig$RuntimeConfig.<init>(ResourceConfig.java:1159)
    at org.glassfish.jersey.server.ResourceConfig$RuntimeConfig.<init>(ResourceConfig.java:1132)
    at org.glassfish.jersey.server.ResourceConfig.createRuntimeConfig(ResourceConfig.java:1128)
    at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:281)
    at org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:298)
    at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:167)
    at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:349)
    at javax.servlet.GenericServlet.init(GenericServlet.java:158)
    at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1284)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1197)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1087)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5253)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5543)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1574)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1564)
    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)

jan. 11, 2016 2:01:11 DU org.apache.catalina.core.StandardContext loadOnStartup
SEVERE: Servlet [Jersey Web Application] in web application [/excercise-services] threw load() exception
java.lang.ArrayIndexOutOfBoundsException: 3845
    at org.objectweb.asm.ClassReader.accept(ClassReader.java:470)
    at org.objectweb.asm.ClassReader.accept(ClassReader.java:425)
    at org.glassfish.jersey.server.internal.scanning.AnnotationAcceptingListener.process(AnnotationAcceptingListener.java:169)
    at org.glassfish.jersey.server.ResourceConfig.scanClasses(ResourceConfig.java:879)
    at org.glassfish.jersey.server.ResourceConfig._getClasses(ResourceConfig.java:837)
    at org.glassfish.jersey.server.ResourceConfig.getClasses(ResourceConfig.java:752)
    at org.glassfish.jersey.server.ResourceConfig$RuntimeConfig.<init>(ResourceConfig.java:1159)
    at org.glassfish.jersey.server.ResourceConfig$RuntimeConfig.<init>(ResourceConfig.java:1132)
    at org.glassfish.jersey.server.ResourceConfig.createRuntimeConfig(ResourceConfig.java:1128)
    at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:281)
    at org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:298)
    at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:167)
    at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:349)
    at javax.servlet.GenericServlet.init(GenericServlet.java:158)
    at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1284)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1197)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1087)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5253)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5543)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1574)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1564)
    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)
A_Di-Matteo
  • 26,902
  • 7
  • 94
  • 128
Adamsan
  • 662
  • 1
  • 15
  • 27

0 Answers0