Hay una pregunta similar, pero la aceptó solución no se aplica (Problema causado de alguna manera por Spring MVC, que no es el caso, ya que es en esta pregunta similar: La primavera 3.1 + Hibernate 4.1 JPA, gerente de la Entidad de la fábrica se ha registrado dos veces)

Ser claro mi único problema es la advertencia de que el gerente de la entidad de la fábrica(emf) nombre ha sido registrado dos veces, no tengo problemas con JPA a pesar de la advertencia.

Entonces, ¿cómo es el emf nombre está cargando la primera vez si la primavera no lo está haciendo, y debe/how_do puedo detener esto?

Entorno: Glassfish v 3.1.1, Primavera 3.1.1, JPA 2.0 (Hibernate-entidad-administrador de 4.1.0), Struts2

Me estoy haciendo la siguiente advertencia:

WARN: HHH000436: Entity manager factory name (empsys) is already registered.  If entity manager will be clustered or passivated, specify a unique value for property 'hibernate.ejb.entitymanager_factory_name'

Aquí es parte de la de registro del servidor (última línea es la advertencia, me cortó la parte superior, pero el descanso es continua):

INFO: Instantiated an instance of org.hibernate.validator.engine.resolver.JPATraversableResolver.
INFO: HCANN000001: Hibernate Commons Annotations {4.0.1.Final}
INFO: HHH000412: Hibernate Core {4.1.0.Final}
INFO: HHH000206: hibernate.properties not found
INFO: HHH000021: Bytecode provider name : javassist
INFO: HHH000204: Processing PersistenceUnitInfo [
name: empsys
...]
INFO: HHH000130: Instantiating explicit connection provider: org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider
INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQLInnoDBDialect
INFO: HHH000423: Disabling contextual LOB creation as JDBC driver reported JDBC version [3] less than 4
INFO: HHH000268: Transaction strategy: org.hibernate.engine.transaction.internal.jta.CMTTransactionFactory
INFO: HHH000397: Using ASTQueryTranslatorFactory
INFO: Instantiated an instance of org.hibernate.validator.engine.resolver.JPATraversableResolver.
INFO: Instantiated an instance of org.hibernate.validator.engine.resolver.JPATraversableResolver.
INFO: PWC1412: WebModule[null] ServletContext.log():No Spring WebApplicationInitializer types detected on classpath
INFO: PWC1412: WebModule[null] ServletContext.log():Initializing Spring root WebApplicationContext
INFO: Root WebApplicationContext: initialization started
INFO: Refreshing Root WebApplicationContext: startup date [Sat Sep 01 19:14:15 MDT 2012]; root of context hierarchy
INFO: Loading XML bean definitions from class path resource [applicationContext.xml]
INFO: JSR-250 'javax.annotation.ManagedBean' found and supported for component scanning
INFO: JSR-330 'javax.inject.Named' annotation found and supported for component scanning
INFO: JSR-330 'javax.inject.Inject' annotation found and supported for autowiring
INFO: Bean 'org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter#3170938b' of type [class org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
INFO: Bean 'dataSource' of type [class org.springframework.jndi.JndiObjectFactoryBean] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
INFO: Bean 'dataSource' of type [class com.sun.gjc.spi.jdbc40.DataSource40] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
INFO: Building JPA container EntityManagerFactory for persistence unit 'empsys'
INFO: HHH000204: Processing PersistenceUnitInfo [
name: empsys
...]
INFO: HHH000130: Instantiating explicit connection provider: org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider
INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQLInnoDBDialect
INFO: HHH000423: Disabling contextual LOB creation as JDBC driver reported JDBC version [3] less than 4
INFO: HHH000268: Transaction strategy: org.hibernate.engine.transaction.internal.jta.CMTTransactionFactory
INFO: HHH000397: Using ASTQueryTranslatorFactory
INFO: Instantiated an instance of org.hibernate.validator.engine.resolver.JPATraversableResolver.
INFO: Instantiated an instance of org.hibernate.validator.engine.resolver.JPATraversableResolver.
WARN: HHH000436: Entity manager factory name (empsys) is already registered.  If entity manager will be clustered or passivated, specify a unique value for property 'hibernate.ejb.entitymanager_factory_name'

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>  
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>  
<welcome-file-list>
<welcome-file>/index.action</welcome-file>
</welcome-file-list>
</web-app>

applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:jdbc="http://www.springframework.org/schema/jdbc"
xmlns:jee="http://www.springframework.org/schema/jee"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/jdbc
http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/jee 
http://www.springframework.org/schema/jee/spring-jee-3.0.xsd">
<context:annotation-config/>            
<context:component-scan base-package="com.kenmcwilliams.employmentsystem" />
<jee:jndi-lookup id="dataSource" jndi-name="jdbc/empsys" /> 
<bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor"/>
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<!--  <property name="persistenceUnitName" value="empsys" /> -->
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"/>
</property>
<property name="dataSource" ref="dataSource"/>
</bean>
<bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager"/>
<tx:annotation-driven  transaction-manager="transactionManager"/>
</beans>

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="empsys" transaction-type="JTA">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>jdbc/empsys</jta-data-source>
<class>com.quaternion.orm.Something</class>
<properties>
<property name="hibernate.transaction.jta.platform" value="org.hibernate.service.jta.platform.internal.SunOneJtaPlatform"/> 
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLInnoDBDialect"/>
</properties>
</persistence-unit>
</persistence>
¿Tú también tienes un spring-webmvc.xml? Si sí, usted puede publicar el fragmento de código por favor?
Gracias, no hay spring-webmvc.xml, estoy usando struts2 para la capa web.

OriginalEl autor Quaternion | 2012-09-02

2 Comentarios

  1. 4

    Parece Hibernate se le pide que cree una FEM de esta PU dos veces. Hibernate pistas de cada uno de los CEM se basa en un registro. Esta advertencia es sólo decir que una FEM que ya estaba registrado bajo el mismo nombre de la PU. Como la advertencia dice que puede ser un problema si el clúster de la aplicación con la que los CEM. De lo contrario, es sólo una advertencia informando acerca de la situación (e incluso de cómo resolverlo).

    Pero, ¿cómo hibernate saber para crear la EMF para este PU? Es mi contenedor de glassfish que las causas de hibernación para buscar y procesos de esta instancia? El hecho de que la primavera está intentando cargar esta instancia no es ningún misterio, y quiero que este simplemente no entiendo cómo es cada vez cargado el primer tiempo.
    Tal vez. La mayoría de los EE contenedores de escanear las implementaciones de prueba para diversos tipo de implementaciones para ver si se necesita control especial (la GUERRA, el OÍDO, PAR, etc). El camino de la app dice que la persistencia de los archivos puede ser reconocido es la presencia de persistence.xml. Así que es una explicación probable.
    Nunca fue capaz de determinar la causa, sino la aceptación de esta respuesta porque parece plausible.

    OriginalEl autor Steve Ebersole

  2. 2

    Creo que el problema puede ser resuelto aquí:

    <context:component-scan base-package="com.kenmcwilliams.employmentsystem" />

    Debe filtrar todos los paquetes o clases de JPA que son anotados con @Componente, especialmente la que crea el gerente de la entidad bean.

    Clases anotadas con @Componente son escaneados por defecto, al menos para el contexto raíz JPA configuraciones.

    Tuve el mismo problema y lo resolvió mediante el filtrado de la configuración de JPA clases de la componente de exploración.

    OriginalEl autor Steven Thomson

Dejar respuesta

Please enter your comment!
Please enter your name here