从解析没有持久性单元{类路径*:META-INF / persistence.xml中}(No pe

2019-09-20 04:47发布

使用Spring核心3.0.5,3.6.0休眠。 这个问题的标题是启动一个Tomcat Web服务器(6.0.29)与应用程序,我维护提出了一个java.lang.IllegalStateException的消息。

applicationContext.xml中说:

<bean id="emf" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" scope="singleton">
   <property name="jpaVendorAdapter">
     <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
  </property>
</bean>

persistence.xml中是在一个罐子里的META-INF目录下文件的项目包括。 Expedissimo.web.war有说的.jar一个WEB-INF / classes文件夹。

在启动服务器的完整例外回溯是:

坟墓异常的LOR DE L'envoi DE L'évènementcontexte初始化(背景初始化)A L'例如德CLASSE D'écoute(听众)org.springframework.web.context.ContextLoaderListener org.springframework.beans.factory.BeanCreationException:错误创建与在ServletContext的资源定义的名称“电动势”豆[/WEB-INF/applicationContext.xml的]:init方法的调用失败; 嵌套异常是java.lang.IllegalStateException:在组织在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1420):{META-INF / persistence.xml中类路径*}从解析否持久单元。 springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)在org.springframework.beans.factory.support。 AbstractBeanFactory $ 1.getObject(AbstractBeanFactory.java:291)在org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)在org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java :288)在org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)在org.springframewo rk.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:563)在org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)在org.springframework.context.support.AbstractApplicationContext.refresh( AbstractApplicationContext.java:425)在org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276)在org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197)在org.springframework.web .context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)在org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4135)在org.apache.catalina.core.StandardContext.start(StandardContext.java:4630 )在org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)在org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)在org.apache .catalina.core.StandardHost.addChild(StandardHost.java:546)在org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:637)在org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java :563)在org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:498)在org.apache.catalina.startup.HostConfig.start(HostConfig.java:1277)在org.apache.catalina.startup。 HostConfig.lifecycleEvent(HostConfig.java:321)在org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)在org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)在组织.apache.catalina.core.StandardHost.start(StandardHost.java:785)在org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)在org.apache.catalina.core.StandardEngine.start(StandardEngine的.java:445)在org.apache.catalina.core.StandardService.start(StandardService.java:519)在org.apache.catalina.core.StandardServer.start(StandardServer.java:710)在org.apache.catalina。 STA rtup.Catalina.start(Catalina.java:581)在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl。的java:25)在java.lang.reflect.Method.invoke(Method.java:597)在org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)在org.apache.catalina.startup.Bootstrap 。主要(Bootstrap.java:414)引起的:java.lang.IllegalStateException:从解析否持久单元{类路径*:META-INF / persistence.xml中}在org.springframework.orm.jpa.persistenceunit.DefaultPersistenceUnitManager.obtainDefaultPersistenceUnitInfo( DefaultPersistenceUnitManager.java:373)在org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.determinePersistenceUnitInfo(LocalContainerEntityManagerFactoryBean.java:247)在org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManager FactoryBean.java:196)在org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:308)在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1477)在org.springframework .beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417)

... 36 more

persistence.xml中说:

<persistence 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" version="2.0">
<persistence-unit name="serv2010pool" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider> 
    <properties>
        <property name="hibernate.show_sql" value="false" /> 
        <property name="hibernate.format_sql" value="true" /> 
        <property name="use_sql_comments" value="true" /> 
        <property name="hibernate.autocommit" value="false" /> 
        <property name="javax.persistence.jdbc.driver"     value="oracle.jdbc.OracleDriver"/>
        <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect"/>
        <property name="hibernate.connection.insee.poolName" value="serv2010pool" />
        <property name="hibernate.connection.provider_class" value=
            "fr.insee.config.hibernate.InseeConnectionProvider"/>           
    </properties>
</persistence-unit>

同样的持久化单元描述符,在一批兄弟项目外弹簧使用时被发现,从正确解析

    emf = Persistence.createEntityManagerFactory("serv2010pool");

批项目,就像Web项目,包括Serv2010-1.0.jar,其中有META-INF / persistence.xml中。 所有的注解类是在这个共同的罐子。

Eclipse的V3.6内部署引发异常。 在将.war的WEB-INF / classes目录/文件夹没有persistence.xml文件。 手动添加它,并重新启动服务器没有帮助。

任何想法? 我黔驴技穷这里,感谢提供任何。 CChris

Answer 1:

这通常意味着春天无法找到的persistence.xml。 确保persistence.xml中是在META-INF关于你的classpath。 这可能意味着你必须把在WEB-INF \类\ META-INF文件,即使它似乎很奇怪。



Answer 2:

如果您正在使用Maven的META-INF文件夹应放在内src/main/resources ,一旦该文件是有问题了。



Answer 3:

正如一个除了其他的答案:

我有同样的问题,也使用maven。 我不得不做一个清新的错误消散之前。 可能是明显的,但一些其他人可能会发现这个有用。 :)



Answer 4:

你的配置在entityManagerFactory的豆packagesToScan财产?



Answer 5:

面临着同样的问题。但问题是在spring.xml在entityFactoryManagerBean定义添加“packagesToScan”属性后解决。



文章来源: No persistence units parsed from {classpath*:META-INF/persistence.xml}