Сконфигурируйте JBOSS 7.1 для использования диспетчера объектов, управляемого приложением, в отличие от диспетчера объектов, управляемого контейнером - PullRequest
0 голосов
/ 24 сентября 2019

Я пытаюсь обновить развертывание моего приложения с Jboss 6.4 до Jboss 7.1, и мне не удалось обойти эту ошибку:

java.lang.IllegalArgumentException: WFLYWELD0037: Error injecting persistence unit into CDI managed bean. Can't find a persistence unit named 'entityManagerFactory' in deployment ***.war for injection point private javax.persistence.EntityManager com.***.persistenceManager"}}}}}}}}

У меня entityManagerFactory, определенный как bean-компонент в Spring Application applicationCtext.XML-файл, как показано ниже:

<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="persistenceUnitName" value="extiPU" /> 
    <property name="dataSource" ref="dataSource" />  
    <property name="jtaDataSource" ref="dataSource" />
    <property name="jpaVendorAdapter">
        <bean class="org.springframework.orm.jpa.vendor.EclipseLinkJpaVendorAdapter">
            <!--<property name="database" value="ORACLE" />-->
            <property name="showSql" value="true" />
            <property name="databasePlatform" value="org.eclipse.persistence.platform.database.OraclePlatform" />
            <property name="generateDdl" value="true" />
        </bean>
    </property>
    <property name="jpaDialect">
        <bean class="org.springframework.orm.jpa.vendor.EclipseLinkJpaDialect" />
    </property>
</bean>

, а содержимое моего файла persistence.xml:

<?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="extiPU"
    transaction-type="RESOURCE_LOCAL">
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
    <jta-data-source>jdbc/tdsrc</jta-data-source>
    <properties>
        <property name="eclipselink.logging.level" value="OFF" />
        <!-- 
        <property name="eclipselink.deploy-on-startup" value="true" />
        <property name="eclipselink.target-server" value="JBoss"/>
        --> 
        <property name="eclipselink.logging.level.sql" value="OFF" />
        <property name="eclipselink.logging.parameters" value="false" />
        <property name="eclipselink.logging.connection" value="false" />
        <property name="eclipselink.logging.session" value="false" />
        <property name="eclipselink.target-database" value="Oracle" />
        <property name="eclipselink.weaving" value="false" />
        <property name="jboss.as.jpa.managed" value="false" />
    </properties>
</persistence-unit>

В моих классах постоянства я внедряю его, выполняя:

    @PersistenceContext(unitName = "entityManagerFactory")
    private EntityManager persistenceManager;

После всего этого я все еще не могу понять, почему Jboss 7.1 не позволяет диспетчеру персистентности управлять приложениями.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...