Websphere 8.5 - ArrayIndexOutofBoundsException при запуске приложения

Мне удалось развернуть простое веб-приложение в Websphere 8.5, но я не смог его запустить. Он выдает исключение ArrayIndexOutofBoundsException при запуске моего приложения.

До сих пор мы использовали Tomcat7 для нашего веб-приложения. Это простое веб-приложение с JSP, JS и сервлетами.

Я перепробовал множество вариантов развертывания приложения в Websphere, но последним препятствием, с которым я столкнулся, является исключение ArrayIndexOutofBoundsException.

Я попытался развернуть это же приложение (мини-версию), содержащее только один сервлет, и это удалось. Но когда у меня есть несколько сервлетов, я получаю это исключение. Ниже моя трассировка стека

[8/12/14 12:15:55:463 IST] 00000046 BeansDeployer E BeansDeployer deploy 
                             java.lang.RuntimeException: java.lang.ArrayIndexOutOfBoundsException
at org.apache.webbeans.portable.AnnotatedElementFactory.newAnnotatedType(AnnotatedElementFactory.java:150)
at org.apache.webbeans.config.BeansDeployer.deployFromClassPath(BeansDeployer.java:484)
at org.apache.webbeans.config.BeansDeployer.deploy(BeansDeployer.java:171)
at org.apache.webbeans.lifecycle.AbstractLifeCycle.startApplication(AbstractLifeCycle.java:124)
at org.apache.webbeans.web.lifecycle.WebContainerLifecycle.startApplication(WebContainerLifecycle.java:78)
at com.ibm.ws.webbeans.common.CommonLifeCycle.startApplication(CommonLifeCycle.java:106)
at com.ibm.ws.webbeans.services.JCDIServletContainerInitializer.onStartup(JCDIServletContainerInitializer.java:85)
at com.ibm.ws.webcontainer.webapp.WebAppImpl.initializeServletContainerInitializers(WebAppImpl.java:613)
at com.ibm.ws.webcontainer.webapp.WebAppImpl.initialize(WebAppImpl.java:409)
at com.ibm.ws.webcontainer.webapp.WebGroupImpl.addWebApplication(WebGroupImpl.java:88)
at com.ibm.ws.webcontainer.VirtualHostImpl.addWebApplication(VirtualHostImpl.java:169)
at com.ibm.ws.webcontainer.WSWebContainer.addWebApp(WSWebContainer.java:749)
at com.ibm.ws.webcontainer.WSWebContainer.addWebApplication(WSWebContainer.java:634)
at com.ibm.ws.webcontainer.component.WebContainerImpl.install(WebContainerImpl.java:426)
at com.ibm.ws.webcontainer.component.WebContainerImpl.start(WebContainerImpl.java:718)
at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:1175)
at com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart(DeployedApplicationImpl.java:1370)
at com.ibm.ws.runtime.component.DeployedModuleImpl.start(DeployedModuleImpl.java:639)
at com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:968)
at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:774)
at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:2182)
at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start(CompositionUnitMgrImpl.java:445)
at com.ibm.ws.runtime.component.CompositionUnitImpl.start(CompositionUnitImpl.java:123)
at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start(CompositionUnitMgrImpl.java:388)
at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.access$500(CompositionUnitMgrImpl.java:116)
at com.ibm.ws.runtime.component.CompositionUnitMgrImpl$CUInitializer.run(CompositionUnitMgrImpl.java:994)
at com.ibm.wsspi.runtime.component.WsComponentImpl$_AsynchInitializer.run(WsComponentImpl.java:502)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1862)
Caused by: java.lang.ArrayIndexOutOfBoundsException
at org.apache.webbeans.portable.AbstractAnnotatedCallable.setAnnotatedParameters(AbstractAnnotatedCallable.java:66)
at org.apache.webbeans.portable.AnnotatedConstructorImpl.<init>(AnnotatedConstructorImpl.java:56)
at org.apache.webbeans.portable.AnnotatedElementFactory.newAnnotatedType(AnnotatedElementFactory.java:117)
... 27 more

Я прочитал пару других сообщений от людей, которые столкнулись с более или менее той же проблемой, но они говорили о Spring или Guava, ни один из которых я здесь не использую. В результате решения, которые я там прочитал, не решили мою проблему.

Может ли кто-нибудь пролить свет на решение? Это было бы очень полезно.

Дополнительная информация:

Я разрабатываю свой проект на Eclipse Kepler и использую плагин Webshpere 8.5 для развертывания на сервере приложений Websphere.

Спасибо, Шрирам


person Sriram Sridharan    schedule 08.12.2014    source источник
comment
Вы должны прикрепить исходный код своего класса, где вы используете CDI. В противном случае будет очень сложно что-то более подробно рассказать о проблеме.   -  person Gas    schedule 08.12.2014
comment
@Gas, я пытаюсь установить приложение со многими классами. Извините, если я звучу слишком элементарно, но я не знаю, что такое CDI. Вы можете помочь? Тогда я могу прикрепить источник моего класса.   -  person Sriram Sridharan    schedule 09.12.2014
comment
Просто прикрепите один из ваших сервлетов. CDI — это внедрение контекста и зависимостей — см. руководство по cdi здесь   -  person Gas    schedule 09.12.2014
comment
Я подозреваю, что это проблема продукта, поскольку я ожидаю правильного сообщения об ошибке, а не ArrayIndexOutOfBoundsException, если это не проблема с кодом. Я рекомендую открыть PMR с IBM.   -  person Brett Kail    schedule 09.12.2014
comment
Какую версию JSF вы используете? Чтобы использовать CDI с JSF в WAS, вам необходимо запустить определенную поддерживаемую версию. Если вы используете новые версии JSF + CDI (аннотации), это не сработает. К сожалению, вам придется вернуться к поддерживаемой версии JSF. Мы надеемся, что IBM исправит это как можно скорее, так как это очень раздражающая ошибка. Пожалуйста, проверьте эту ссылку: pic.dhe.ibm.com/infocenter/wasinfo/v8r0/index.jsp?topic=/   -  person groo    schedule 10.12.2014
comment
Я один из авторов Apache OpenWebBeans, и я видел эту проблему на некоторых JVM. Проблема может заключаться в том, что у вас есть аннотация в вашем классе, но сам класс аннотаций не находится в пути к классам. Согласно Java langspec, JVM должна игнорировать эту аннотацию, но некоторые JVM просто взрываются именно этим забавным исключением ArrayIndexOutOfBoundsException. Пожалуйста, проверьте, какую версию J9 вы используете и можете ли вы обновить ее до более новой.   -  person struberg    schedule 09.04.2015


Ответы (1)


На самом деле оказалось, что мой проект действительно ссылался на гуаву. Он использовал гуаву версии 15.0. Я изменил версию на 16.0 и включил ее в свою общую библиотеку... и это решило проблему. Приносим извинения за то, что забыли о гуаве. Старые сэкономили много времени !!

person Sriram Sridharan    schedule 29.12.2014