eclipse-ee4j / eclipse-ee4j/jersey
ArrayIndexOutOfBoundsException when trying to use Jersey+Weld+Tomcat
- Dominant language
- Java
- Stars
- 730
- Forks
- 382
- PR merge metrics
- No merged PRs in 30d
Description
The problem surfaces in ExternalRequestScopeConfigurator.java:84
The scope class org.glassfish.jersey.weld.se.WeldRequestScope is queried with `getTypeParameters()` and that returns an empty list. That's why I'm getting this exception:
```
java.lang.ArrayIndexOutOfBoundsException: 0
at org.glassfish.jersey.server.ExternalRequestScopeConfigurator.init(ExternalRequestScopeConfigurator.java:84)
at org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:359)
at org.glassfish.jersey.server.ApplicationHandler.lambda$initialize$1(ApplicationHandler.java:316)
at org.glassfish.jersey.internal.Errors.process(Errors.java:316)
at org.glassfish.jersey.internal.Errors.process(Errors.java:298)
at org.glassfish.jersey.internal.Errors.processWithException(Errors.java:256)
at org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:315)
at org.glassfish.jersey.server.ApplicationHandler.(ApplicationHandler.java:282)
at org.glassfish.jersey.servlet.WebComponent.(WebComponent.java:335)
at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:178)
at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:370)
at javax.servlet.GenericServlet.init(GenericServlet.java:158)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1124)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:974)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4829)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5143)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1427)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1417)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:943)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:839)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1427)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1417)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:943)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:258)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:422)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:770)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.startup.Catalina.start(Catalina.java:682)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:350)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:492)
```
This is a segment of the gradle file used;
```
dependencies {
implementation 'org.apache.lucene:lucene-core:7.4.0'
implementation 'org.apache.lucene:lucene-queryparser:7.4.0'
implementation 'org.apache.lucene:lucene-suggest:7.4.0'
implementation 'org.apache.lucene:lucene-expressions:7.4.0'
implementation 'org.apache.lucene:lucene-highlighter:7.4.0'
providedCompile "javax.servlet:javax.servlet-api:4.0.0"
implementation 'org.apache.taglibs:taglibs-standard-spec:1.2.5'
implementation 'org.apache.taglibs:taglibs-standard-impl:1.2.5'
implementation 'org.glassfish.jersey.containers:jersey-container-servlet:2.27'
implementation 'org.glassfish.jersey.inject:jersey-hk2:2.27'
implementation 'org.glassfish.jersey.media:jersey-media-json-jackson:2.27'
implementation 'org.glassfish.jersey.ext.cdi:jersey-cdi1x:2.27'
implementation 'org.glassfish.jersey.ext.cdi:jersey-cdi1x-servlet:2.27'
implementation 'org.glassfish.jersey.ext.cdi:jersey-weld2-se:2.27'
// This is not the latest Weld version, but Jersey 2.27 still uses this
implementation 'org.jboss.weld.servlet:weld-servlet:2.2.14.Final'
}
```
Contributor guide
Assessment
This issue has not been assessed yet.