Я пытаюсь внедрить PersistenceContex в POJO, используя аннотацию @PersistenceContex, я читал, что мне нужно сделать так, чтобы POJO удалось это сделать. Итак, я ввожу свой класс POJO в сервлет (так что теперь он управляется как зависимый объект, я прав?), но когда сервлет пытается вызвать метод из введенного объекта, я получаю сообщение об ошибке:
java.lang.IllegalStateException: невозможно получить EntityManagerFactory для unitName null
Итак, похоже, что PersistenceContext не вводится в POJO должным образом, что мне делать, чтобы он работал?
Мой класс POJO выглядит так:
public class FileEntityControlerImpl implements FileEntityInterface {
@PersistenceContext
EntityManager entityManager;
@Override
public void createFile(FileEntity fileEntity) {
...}
@Override
public FileEntity retriveFile(String fileName) {
...}
Точка впрыска:
@Inject
FileEntityInterface fileController;
Если я использую SLSB и ввожу с помощью @EJB, все работает нормально.
..::ОБНОВИТЬ::..
трассировки стека:
постоянство.xml:
..::ОБНОВЛЕНИЕ2::..
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="MambaPU" transaction-type="JTA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<jta-data-source>jdbc/MambaDB</jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<shared-cache-mode>ALL</shared-cache-mode>
<properties>
<!-- <property name="javax.persistence.jdbc.password" value="root"/>-->
<!-- <property name="javax.persistence.jdbc.user" value="root"/>-->
<!-- <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>-->
<!-- <property name="eclipselink.ddl-generation" value="create-tables"/>-->
<!-- <property name="eclipselink.logging.logger" value="org.eclipse.persistence.logging.DefaultSessionLog"/>-->
<property name="eclipselink.logging.level" value="ALL"/>
<property name="eclipselink.ddl-generation" value="drop-and-create-tables"/>
</properties>
</persistence-unit>
</persistence>
Если кому-то интересно, есть источник моего проекта, я использую maven, поэтому его легко собрать и запустить. (Диск MySql не включен в pom-s, поэтому имейте это в виду)
Просто для справки: