2013-11-27 3 views
5

Я получаю эту ошибку, начиная с веб-приложения на WebSphere 8.5. Заявления приложений через хранимые процедуры MyBatis в DB2. Пользователь запускает вызовы с использованием REST WS, реализованные с использованием фреймворка Jersey. Весна склеивает все вместе. То же приложение отлично работает на Tomcat 7. Кто-нибудь видел эту ошибку? Любая помощь будет оценена). Похоже, он не смог инициализировать контейнер для инъекций контекста и зависимостей для приложения.Исключение запуска приложения на webspere 8.5

StackTrace:

[26.11.13 10:20:36:339 MSK] 000000a3 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:746) 
       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) 

skip ... 

       at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138) 
       at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204) 
       at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775) 
       at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905) 
       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) 
       ... 108 more 
+0

Судья из stacktrace CDI начинает загружать ваше приложение insntead Spring. Убедитесь, что у вас нет файла beans.xml в файле (или связанных файлов jar), так как это вызовет CDI. –

+0

В любом случае это выглядит как дефект продукта. Я рекомендую открыть PMR с IBM. –

+5

Проблема решена. Проблема заключалась в том, что проект использует Guava, но используемая версия поддерживает последний CDI. И WebSphere использует старую версию реализации CDI из Appache OpenWeb. Существует версия библиотеки Guava, которая решает эту проблему. В файле: пом com.google.guava гуавы 15,0 cdi1.0 user3040441

ответ

6

была такая же проблема на Websphere 8. Этот ответ основан на замечание user3040441 в. Чтобы избежать дополнительных исследований для других, которые хотят решить эту проблему.

https://code.google.com/p/guava-libraries/wiki/Release15#A_note_on_JEE6_/_CDI_1.0

Замечание о JEE6/КДИ 1,0

Обходной добавляют гуавы 15,0, чтобы сделать его совместимым с CDI 1.1 (используемый в контейнерах JEE7) вызвало проблемы для гуавы с CDI 1.0 (использовали в контейнерах JEE6).

Если вы используете Guava в среде CDI 1.0, вы должны использовать guava-15.0-cdi1.0.jar вместо обычной банки Guava. В Maven, зависимость может быть определен как:

<dependency> 
    <groupId>com.google.guava</groupId> 
    <artifactId>guava</artifactId> 
    <version>15.0</version> 
    <classifier>cdi1.0</classifier> 
</dependency> 

https://code.google.com/p/guava-libraries/issues/detail?id=1527#c20

JSR-330 аннотации были удалены для гуавы 16,0, так что надеюсь, не будет никаких дальнейших проблем с КДИ. Теперь у нас будут только проблемы , когда код, использующий аннотации, перестает работать.

+0

Обсуждение полной иглы в стоге сена, чтобы попытаться понять это. Если бы я знал, где ты, я бы купил тебе пиво. Другие могут просматривать вкладку иерархии зависимостей на помпе, в которой есть проблема, и искать «guava», потому что это может быть скрытая зависимость от другой зависимости, которую вы включаете. Затем вы можете щелкнуть правой кнопкой мыши по зависимости от guava и выбрать отключить, сохранить, перейти к.xml и проверьте, есть ли исключение для guava. Затем вручную замените его, импортировав указанную выше зависимость Stefan. Несколько дней я ездил по кругу. Спасибо! – Russ

Смежные вопросы