2013-12-07 2 views
0

Я пытаюсь запустить нить в Singleton EJB, но java.lang.IllegalStateException бросается. Это мой (сокращенный) Класс:Могу ли я запустить ManagedThread в Singleton Enterprise Java Bean?

Singleton 
@LocalBean 
@Startup 
public class WatcherEJB { 


    @Resource(name = "concurrent/masterActionsThreadFactor") 
    ManagedThreadFactory threadFactory; 

    Thread watcherThread; 

    @PostConstruct 
    public void startUp() { 

     //Setup the listener using the ThreadFactory 
     watcherThread = threadFactory.newThread(new Runnable() { 

      @Override 
      public void run() { 
       //System.out.println("Watcher Thread started"); 
      } 
     }); 
     watcherThread.start(); //java.lang.IllegalStateException thrown here 
    } 
} 

Я предполагаю, что есть проблема с когда я пытаюсь запустить объект Thread или же Java EE-не позволяют управляемые потоков в одиночках?

+0

@perissf: Работа с потоками в контейнере EJB не рекомендуется в ** JAVA EE 6 и предварительного **. В ** JAVA EE 7 ** Вы можете работать с потоками с помощью 'ManagedThreadFactory',' ManagedExecutorService' и 'ManagedScheduledExecutorService'. http://docs.oracle.com/javaee/7/tutorial/doc/concurrency-utilities.htm#GKJIQ8 – pWoz

+0

Вы правы. Я еще никогда не работал над этим. Я собираюсь удалить комментарий. – perissf

ответ

0

Какой сервер приложений вы используете?

Если это WildFly Вы, вероятно, столкнуться с этой проблемой: https://issues.jboss.org/browse/WFLY-2343

+0

Это Glassfish 4. Хотя я всего лишь новичок в области Java 7 EE, я не вижу причины, почему это не должно работать. В документах я ничего не вижу, чтобы сказать, что то, что я делаю, запрещено. – Kerry

+0

Вопрос, который вы опубликовали, описывает то, что я вижу, так что это может быть не конкретная реализация? – Kerry

1

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

Glassfish 4 - Using Concurrency API to create Managed Threads

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

  • Нет связанных вопросов^_^