2015-04-17 7 views
1

У меня есть метод Stateless EJB (ejbMethod1), что нужно вызвать операцию веб-службы (wsOper1), если этот вызов не удается, необходимо вызвать другую операцию веб-сервиса (wsOper2).делегируют «задача» (Ex: Runnable) внутри метода сессионного компонента

Моей проблема: мне не нужно возвращение wsOper2 вернуться из ejbMethod1! Я хочу делегировать эту работу другому фрагменту своего приложения и сразу же вернуться.

Вариант1:: Мой первый подход к этой проблеме заключается в использовании глобальной LinkedBlockingQueue для хранения объекта, представляющего wsOper2 мне нужно делать, и есть N тема извлечения элементов из этой очереди и выполнением вызова ,

Option2:: Создать Runnable и делегировать в какой-либо глобальный пул потоков. Есть один, который я могу использовать?

Или это еще один вариант, который я не рассматриваю?

... PS: Im используя Glassfish 4.1 & JRE8 и я новичок в мире Java EE: P


ОБНОВЛЕНО:

Я использовал ManagedExecutorService для выполнения wsOper2 асинхронно как Runnable.

@Resource 
private ManagedExecutorService executor; 

Благодаря Райан :)

ответ

1

Из спецификации EJB:

Предприятия компоненты не должны пытаться управлять потоками. Компонент предприятия не должен пытаться запускать, останавливать, приостанавливать или возобновлять поток или изменять приоритет или имя потока. Компонент предприятия не должен пытаться управлять группами потоков.

Дополнительную информацию о EJB и резьбе см. В разделе Adam's Blog.

+0

Спасибо :) Я думаю, что это решит мою проблему! – nms

+0

Отлично! Если это правильно ответит на ваш вопрос, можете ли вы принять его, нажав галочку слева от ответа? Благодарю. – Ryan

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

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