1
SEVERE: Allocate exception for servlet Jersey-Servlet
java.lang.ArrayIndexOutOfBoundsException: 9578
    at org.objectweb.asm.ClassReader.readClass(ClassReader.java:2015)
    at org.objectweb.asm.ClassReader.accept(ClassReader.java:469)
    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:883)
    at org.glassfish.jersey.server.ResourceConfig._getClasses(ResourceConfig.java:840)
    at org.glassfish.jersey.server.ResourceConfig.getClasses(ResourceConfig.java:755)
    at org.glassfish.jersey.server.ResourceConfig$RuntimeConfig.<init>(ResourceConfig.java:1171)
    at org.glassfish.jersey.server.ResourceConfig$RuntimeConfig.<init>(ResourceConfig.java:1144)
    at org.glassfish.jersey.server.ResourceConfig.createRuntimeConfig(ResourceConfig.java:1140)
    at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:299)
    at org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:311)
    at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:169)
    at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:359)
    at javax.servlet.GenericServlet.init(GenericServlet.java:158)
    at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1230)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1174)
    at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:847)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:135)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:498)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:1025)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1115)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)

Below is a service I'm using to test.

@Path("/ping")
public class PingService {
  @GET
  public String respondOK() {
    return "SERVICE OK";
  }
}

I'm getting above exception when trying to execute a request. using javax.ws.rs-api:2.0, org.glassfish.jersey.core:jersey-server:2.5, Java-8

  • Please add the code that causes this Exception. You're probably trying to access an element of an array that is not there. – Cecilya Jun 01 '18 at 13:46
  • @Cecilya This is one of my project, which exposes some services, I don't see any issues while deploying to tomcat. I just accessing one of my service (same exception is occurring for all services), added example piece of code I'm accessing. – Satya Upendra Jun 01 '18 at 15:29
  • Maybe https://stackoverflow.com/a/26496604/2587435 – Paul Samsotha Jun 01 '18 at 17:15

1 Answers1

2

The cause of the problem is probably that you are using Tomcat 7. You should use the newest version of Tomcat 8 or even Tomcat 9.

The exception seems to occur when you are using Lambda expressions or newer Java bytecode with a version of asm.jar which is too old.

Here you can find more details about the problem:

unwichtich
  • 13,712
  • 4
  • 53
  • 66
  • For posterity: this happened to me because a maven dependency (swagger) had an older version of `asm.jar` in its dependency tree. – mvreijn Oct 22 '19 at 10:06