2016-03-22 4 views
6

Я пытаюсь настроить Jetty с JSF и Weld CDI. После выполнения this руководства, я натыкаюсь на следующую StackTrace:Исключение с использованием сварки CDI с Jetty: Singleton не установлен для STATIC_INSTANCE

Caused by: java.lang.IllegalStateException: Singleton not set for STATIC_INSTANCE => [] 
    at org.jboss.weld.bootstrap.api.helpers.RegistrySingletonProvider$RegistrySingleton.get(RegistrySingletonProvider.java:28) 
    at org.jboss.weld.Container.instance(Container.java:55) 
    at org.jboss.weld.SimpleCDI.<init>(SimpleCDI.java:77) 
    at org.jboss.weld.environment.WeldProvider$EnvironmentCDI.<init>(WeldProvider.java:45) 
    at org.jboss.weld.environment.WeldProvider.getCDI(WeldProvider.java:61) 
    at javax.enterprise.inject.spi.CDI.current(CDI.java:60) 
    at org.jboss.weld.servlet.WeldInitialListener.contextInitialized(WeldInitialListener.java:94) 
    at org.jboss.weld.servlet.api.helpers.ForwardingServletListener.contextInitialized(ForwardingServletListener.java:34) 
    at org.jboss.weld.environment.servlet.EnhancedListener.onStartup(EnhancedListener.java:65) 
    at org.eclipse.jetty.plus.annotation.ContainerInitializer.callStartup(ContainerInitializer.java:140) 
    at org.eclipse.jetty.annotations.ServletContainerInitializersStarter.doStart(ServletContainerInitializersStarter.java:63) 
    ... 50 more 

ли кто-то увидеть, что происходит здесь не так?

+0

Вы не имели в виду файл '/ WEB-INF/beans.xml'? – BalusC

+0

Это мой WEB-INF/beans.xml:

+0

Проблема предполагает, что BeanManager не найден. Какая версия Jetty? 9.2.4+ позволяет упростить настройку: http://www.eclipse.org/jetty/documentation/current/framework-weld.html – BalusC

ответ

1

Проблема в том, что вы используете как weld-servlet, так и weld-servlet-core в своем пом. Это вызывает дублирование записей класса, поскольку сварной сервлет представляет собой совокупность сердечника с сервоприводом. Удаление зависимостей ядра сварного швеллера фиксировало одноточечную ошибку.

Теперь, когда я это сделал, я получил ошибки в JSF, но это могут быть другие проблемы с конфигурацией.

+0

Я добрался до этого момента, потому что мне нужен был org.omnifaces.resourcehandler.CombinedResourceHandler для Bootsfaces, поэтому я начал добавлять Omnifaces. Тогда оказалось, что мне нужен CDI, поэтому я добавил сварку. Сейчас я пытаюсь найти соответствующие версии для сварки, jsf и т. Д. поэтому я могу заставить конфигурацию работать в моем тестовом бегуне, плагине причала-maven. Я действительно начинаю верить, что такая конфигурация просто не существует, поскольку я продолжаю работать и в других исключениях. Не могли бы вы взглянуть на «другие проблемы с конфигурацией»? –

+0

См. Также http://stackoverflow.com/questions/27666681/weld-001300-when-trying-to-lookup-beanmanager-by-jndi и https://github.com/skaterkamp/streichelzoo-faces/blob/master /streichelzoo-site-webapp/pom.xml#L174 –

3

Эта ошибка появляется, если вы забудете файл beans.xml или, как в моем случае, вы указали его не в том месте. Ваш beans.xml может иметь только корневой элемент, но должен существовать.

Для проекта Maven помнить, что:

  • context.xml Шоуда остаться в src/main/webapp/META-INF/
  • beans.xml должны оставаться в src/main/resources/META-INF/

У меня была эта проблема, когда я переехал приложение, разработанное с использованием Glassfish (который не нуждается в этих файлах) для Tomcat 7.

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