jboss5.1 + spring + jpa [Не определен уникальный бин типа [javax.persistence.EntityManagerFactory]] - PullRequest
0 голосов
/ 13 марта 2011
  1. Определите oracle-ds.xml

    <local-tx-datasource>
      <jndi-name>timekerOracleDS</jndi-name>
      ....
    </local-tx-datasource>
    
  2. Определить постоянство.xml

    <persistence-unit name="timeker" transaction-type="JTA">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <jta-data-source>java:timekerOracleDS</jta-data-source>
            <properties>
                <property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect"/>
                <property name="hibernate.hbm2ddl.auto" value="update"/>
                <property name="hibernate.show_sql" value="true"/>
                <property name="hibernate.format_sql" value="true"/>
                <property name="jboss.entity.manager.factory.jndi.name" value="java:/timeker"/> 
            </properties>
    </persistence-unit>
    
  3. Определить пружину applicationContext.xml

    <aop:aspectj-autoproxy />
    <context:annotation-config />
    <context:component-scan base-package="com.paokuang"/>
    <jee:jndi-lookup id="entityManagerFactory" jndi-name="java:/timeker"/>
    <bean id="txManager" class="org.springframework.transaction.jta.JtaTransactionManager">  
        <property name="transactionManagerName" value="java:/TransactionManager"/>  
        <property name="userTransactionName" value="UserTransaction"/>  
    </bean>
    <tx:annotation-driven transaction-manager="txManager"/>
    
  4. Определить файл конфигурации Spring в файле web.xml

    <persistence-unit-ref>
        <persistence-unit-ref-name>persistence/timeker</persistence-unit-ref-name>
        <persistence-unit-name>timeker</persistence-unit-name>       
    </persistence-unit-ref>
    

    но когда я развернул войну в jboss, произошла ошибка:

    Error creating bean with name 'productTypeServiceBean': Injection of persistence fields failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [javax.persistence.EntityManagerFactory] is defined: expected single bean but found 0
    

Как решить проблему или подсказать правильную конфигурацию spring + jpa + jboss?

1 Ответ

0 голосов
/ 13 марта 2011

В вашем applicationContext.xml.

отсутствует компонент EntityManagerFactory. Возможно, самый простой способ - настроить LocalContainerEntityManagerFactoryBean:

 <bean id="myEmf" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
  <property name="dataSource" ref="someDataSource"/>
  <property name="loadTimeWeaver">
    <bean class="org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver"/>
  </property>
 </bean>

См. http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/orm.html для более подробной информации.

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