Tomcat не вводит ничего, что не является контейнером Java EE (и даже с контейнером Java EE 5 внедрение работает только для управляемых компонентов, таких как сервлеты, фильтры, прослушиватели, EJB, конечные точки веб-службы ... ). Таким образом, вам придется создать EntityManagerFactory
вручную (обычно в сервлете или вспомогательном классе) и получить из него EntityManager
:
EntityManagerFactory emf = Persistence.createEntityManagerFactory(PU_NAME);
EntityManager entityManager = emf.createEntityManager();
Обратите внимание, что создание EntityManagerFactory
является дорогостоящей операцией и не должно выполняться для каждого запроса. Тем не менее, создание EntityManager
не является, и вы должны получить один для каждого потока. Но в вашем случае я бы предложил использовать struts2-persistenceplugin , чтобы справиться с этим.
Спасибо, но [...] кажется, что Java EE не является обязательным для использования инъекций [...], Spring приносит для этого необходимый движок.
Действительно. Но вы написали «НЕТ пружины вообще» в своем другом вопросе, и вы не перечислили ни одного предмета, который мог бы обеспечить инъекцию из коробки. В любом случае, проверьте struts2-persistenceplugin , этого может быть достаточно для ваших нужд.