I have an application that was using Spring 4.3 with xml configuration and it was working correctly but when upgrading to Spring 5 and trying to re-deploy in weblogic I get:
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named ‘entityManagerFactory’ available:org.springframework.beans.factory.NoSuchBeanDefinitionException:No bean named ‘entityManagerFactory’ available
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="database" value="${database.type}" />
<property name="showSql" value="${database.showSql}" />
</bean>
</property>
<property name="persistenceUnitName" value="melpu"/>
<property name="persistenceUnitManager">
<bean class="a18k.core.util.AdvancedPersistenceUnitManager">
<!-- <property name="sEnv" value="${app.env}" /> -->
<!-- <property name="ssoEntityId" value="${sso.entityid}" /> -->
<property name="packagesToScan">
<array>
<value>a18k.core.model.security</value>
<value>a18k.core.model.alert</value>
<value>gov.va.nca.mel.model</value>
<value>gov.va.nca.mel.model.metrics</value>
</array>
</property>
<property name="defaultPersistenceUnitName" value="melpu"/>
<property name="defaultDataSource" ref="dataSource" />
</bean>
</property>
<property name="jpaPropertyMap">
<map>
<entry key="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect" />
<entry key="hibernate.format_sql" value="${database.showSql}" />
<entry key="hibernate.use_sql_comments" value="${database.showSql}" />
<entry key="hibernate.generate_statistics" value="${database.showSql}" />
<entry key="hibernate.cache.region.factory_class" value="org.hibernate.cache.ehcache.EhCacheRegionFactory" />
<entry key="hibernate.cache.use_query_cache" value="true" />
<entry key="hibernate.cache.use_second_level_cache" value="true" />
<entry key="hibernate.cache.use_minimal_puts" value="true" />
<entry key="hibernate.max_fetch_depth" value="4" />
<entry key="hibernate.jdbc.batch_size" value="20" />
<entry key="hibernate.ejb.interceptor" value="gov.va.nca.mel.persistence.MELEntityInterceptor" />
<entry key="org.hibernate.envers.audit_table_suffix" value="_HIST" />
<entry key="org.hibernate.envers.revision_field_name" value="VER" />
<entry key="org.hibernate.envers.revision_type_field_name"
value="REV_TYPE" />
<entry key="org.hibernate.envers.revision_on_collection_change"
value="true" />
<entry key="org.hibernate.envers.do_not_audit_optimistic_locking_field"
value="false" />
<entry key="org.hibernate.envers.store_data_at_delete" value="true" />
<entry key="org.hibernate.envers.default_schema" value="MEL" />
<entry key="org.hibernate.envers.use_revision_entity_with_native_id"
value="false" />
–>
</map>
</property>
<property name="jpaDialect">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaDialect" />
</property>
</bean>
class referencing emf:
@Component(“hibernateUtils”)
public class HibernateUtils {
private static final Logger logger = LoggerFactory.getLogger(HibernateUtils.class);
@Resource(name = "entityManagerFactory")
private EntityManagerFactory entityManagerFactory;
public void logStatistics() {
if (logger.isDebugEnabled()) {
logger.debug("", getStatistics());
}
}
@SuppressWarnings("deprecation")
public Statistics getStatistics() {
EntityManagerFactory emf = ((EntityManagerFactoryInfo) entityManagerFactory).getNativeEntityManagerFactory();
return ((SessionFactory) emf).getStatistics();
}
}
Did something change with how these have to be configured? I haven’t found any documentation saying how beans are instantiated in xml has changed
user25549807 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.