У меня есть среда, в которой один EJB запускается при запуске сервера, код внутренне вызывает другой факт без состояния, который внутренне запускает поток через Executor Service. В этом потоке, запущенном через службу Executor, всякий раз, когда я выполняю поиск jndi (java: global/testing/NetworkConnectionChecker! Com.testing.common.NetworkConnectionChecker) внутри метода run, я получаю javax.naming.NameNotFoundException, но если я поставлю thread.sleep в течение примерно 60 секунд в методе run этого потока, jndi lookup дает мне объект, и никакое исключение не выбрасывается. Еще один интересный момент в том, что когда я выполняю поиск в конструкторе Thread, который я начал, я сразу же получаю объект через jndi-поиск, не помещая ни одного Thread.sleep EJB, который я пытаюсь получить через jndi lookup аннотируется как @Singleton и @Startup. Может кто-нибудь предложить мне, что я делаю неправильно, я также вижу журналы, созданные при запуске сервера, упоминающие привязку jndi. Журнал выглядит следующим образомРазрешение имени JNDI не работает в новой теме в tomee
(name=global/testing/NetworkConnectionChecker!com.testing.common.NetworkConnectionChecker)
я вижу следующее исключение при JNDI поиск неудачен
javax.naming.NameNotFoundException: Name [global/testing/NetworkConnectionChecker!com.testing.common.NetworkConnectionChecker] is not bound in this Context. Unable to find [global].
at org.apache.naming.NamingContext.lookup(NamingContext.java:819)
at org.apache.naming.NamingContext.lookup(NamingContext.java:167)
at org.apache.naming.SelectorContext.lookup(SelectorContext.java:156)
at javax.naming.InitialContext.lookup(InitialContext.java:417)
at com.testing.main.AbstractServiceFactory.getNetworkConnectionChecker(AbstractServiceFactory.java:85)
Я использую Java 8 и tomee версии 1.7
Пожалуйста, дайте мне знать, если любой из вас требуют больше информации. Я провел целый день, пытаясь понять это.
Привет, Мне нужно запустить долго выполняющуюся задачу, когда я получаю запрос, поэтому я использую потоки. Если вы можете предложить мне другой способ справиться с этим, я открыт для этого – vishva