2013-05-06 5 views
2

Я создаю приложение на Weld CDI с tomcat и пытаюсь запустить класс при запуске приложения, чтобы запустить диспетчер объектов. Я получаю следующее исключение: лебедка указывает, что у меня есть несколько областей для моего класса.Исключение области сварки CDI

WELD-000046 At most one scope may be specified on [email protected] @Singleton class se.raindance.squid.core.init.InitSquid 

вот мой InitSquid.Java

@ApplicationScoped 
@Singleton 
@Startup 
public class InitSquid { 

@Inject 
private Logger log; 


@Inject 
EntityManager entityManager; 

/** 
* 
* @param startupEvent is sent when JSF is ready and up and running(After first 
*  request to FacesServlet). 
*/ 
@PostConstruct 
public void init() { 

System.out.println("stutrup!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! InitSquid"); 
// Init Rainlets 
InitRainlets initRainlets = new InitRainlets(entityManager); 
initRainlets.init(); 

initSquidSettings(); 

} 

private void initSquidSettings() { 
List<SquidSettings> settingsList = (List<SquidSettings>) entityManager 
    .createQuery(
     "select squidsettings from SquidSettings squidsettings") 
    .getResultList(); 

if (settingsList.size() == 0) { 
    log.info("No SquidSettings entity exists in system, creating one"); 

    SquidSettings settings = new SquidSettings(); 
    settings.setSubledgerRestResourceURI("http://localhost:8080/subledger-webapp/resteasy/"); 
    entityManager.persist(settings); 
} 
} 

} 

Я буду признателен любой намек на эту проблему

ответ

2

вы указываете боб быть как синглтон и applicationscoped. попробуйте поселиться с одним.

этот вопрос должен дать подсказку, на которой один использовать: stackoverflow.com/questions/4555844/what-is-the-difference-between-applicationscoped-and-singleton-scopes-in-cdi

+0

вы рассказываете мне, что «@Singleton» является Scope в Weld? Сначала у меня не было «@singleton», но я прочитал, что, если я хочу использовать «@startup», мне нужно иметь одноэлементный класс с @Singleton annotaion. – Yashar

+0

applicationcoped используется вместе с 'eager' –

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