Безопасно внедрить EJB в сервлет как переменную экземпляра сервлета, если EJB не имеет состояния. Вы НИКОГДА НЕ ДОЛЖНЫ вводить Stateful Bean в сервлет.
Вы должны реализовать свой EJB без сохранения состояния, так как он не содержит никакой переменной экземпляра, которая сама содержит значение с состоянием (например, контекст постоянства). Если вам нужно использовать постоянный контекст, вы должны получить его экземпляр в методах EJB. Вы можете сделать это, имея PersistenceContextFactory в качестве переменной экземпляра EJB, а затем вы получите экземпляр диспетчера сущностей из Factory в методе EJB.
PersistenceContextFactory является поточно-ориентированным, поэтому его можно внедрить в переменную экземпляра.
До тех пор, пока вы соблюдаете вышеупомянутые правила, вводить компонент без состояния в сервлет должен быть ориентирован на многопотоковое выполнение