发现未发现的类异常

时间:2014-05-06 23:00:06

标签: java spring hibernate

我正在使用mvc-spring框架连接数据库我想创建一个属性文件。 因此,当我尝试编译我的代码时,我得到了一个文件未发现的异常,我正确地提到了文件的位置。 我把fb.propoperties文件放在META-INF文件夹中。

的persistence.xml

    <bean 
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

        <property name="location">
            <value>classpath*:META-INF/db.properties</value>
        </property>
    </bean>
    <!-- Création de la datasource -->
    <bean id="datasource"   class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="${jdbc.driverClassName}"></property>
    <property name="url" value="${jdbc.url}"></property>
    <property name="username" value="${jdbc.username}"></property>
    <property name="password" value="${jdbc.password}"></property>
    </bean>

    <!--  <bean id="persistenceUnitManager" class="org.springframework.orm.jpa.persistenceunit.DefaultPersistenceUnitManager">
    <property name="defaultDataSource" ref="datasource"></property>
    <property name="persistenceXmlLocations">
    <list>
    <value>classpath*:META-INF/persistence.xml</value>
    </list>
    </property>
    </bean>-->

    <bean id="persistenceUnitManager" class="org.springframework.orm.jpa.persistenceunit.DefaultPersistenceUnitManager">
        <!-- On spécifie ici les lieux où trouver les fichiers de persistence -->
        <property name="persistenceXmlLocations">
            <list>
                <value>classpath*:META-INF/persistence.xml</value>
            </list>
        </property>
        <!-- On spécifie ici les sources de données à utiliser, locale ou distante -->
        <property name="dataSources">
            <map>
                <entry key="localDataSource" value-ref="datasource" />
                <!--<entry key="remoteDataSource" value-ref="remote-db" />-->
            </map>
        </property>
        <!-- On spécifie ici la sources de données par défaut si aucune source de données n'est disponible -->
        <property name="defaultDataSource" ref="datasource" />
    </bean>
    <!--  <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="persistenceUnitName" value="ERP_PCD"></property>
    </bean>-->

    <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
        <property name="persistenceUnitName" value="ERP_PCD"/>
    </bean>

    <bean id="entityManager"
    class="org.springframework.orm.jpa.support.SharedEntityManagerBean">
    <property name="entityManagerFactory" ref="entityManagerFactory" />
    </bean>
    <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
    <property name="entityManagerFactory" ref="entityManagerFactory"></property>
    </bean> 
    <tx:annotation-driven transaction-manager="transactionManager"/>
    <bean name="opmanager" class="com.ensi.dao.opmanagerImpl"> </bean>
    <context:annotation-config/>
    <context:component-scan base-package="com.ensi.dao"></context:component-scan>

</beans>

栈跟踪

{226 [main] INFO org.springframework.context.support.ClassPathXmlApplicationContext -   Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@4e838143:  startup date [Wed May 07 00:19:19 CEST 2014]; root of context hierarchy
    403 [main] INFO org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Loading   XML bean definitions from URL  [file:/C:/Users/housseminfo/workspace/ERP_PCD/target/classes/META-  INF/applicationContext.xml]
  1001 [main] INFO org.springframework.context.annotation.ClassPathBeanDefinitionScanner -   JSR-330 'javax.inject.Named' annotation found and supported for component scanning
   1351 [main] INFO org.springframework.beans.factory.config.PropertyPlaceholderConfigurer    - Loading properties file from class path resource [classpath*:META-INF/db.properties]
    1353 [main] INFO org.springframework.beans.factory.support.DefaultListableBeanFactory -    Destroying singletons in    org.springframework.beans.factory.support.DefaultListableBeanFactory@6fe03f3b: defining    beans   [org.springframework.beans.factory.config.PropertyPlaceholderConfigurer#0,datasource,persis tenceUnitManager,entityManagerFactory,entityManager,transactionManager,org.springframework. aop.config.internalAutoProxyCreator,org.springframework.transaction.annotation.AnnotationTransactionAttributeSource#0,org.springframework.transaction.interceptor.TransactionInterceptor#0,org.springframework.transaction.config.internalTransactionAdvisor,opmanager,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.internalPersistenceAnnotationProcessor,org.springframework.context.annotation.ConfigurationClassPostProcessor.importAwareProcessor]; root of factory hierarchy
Exception in thread "main" org.springframework.beans.factory.BeanInitializationException: Could not load properties; nested exception is java.io.FileNotFoundException: class path resource [classpath*:META-INF/db.properties] cannot be opened because it does not exist
    at org.springframework.beans.factory.config.PropertyResourceConfigurer.postProcessBeanFactory(PropertyResourceConfigurer.java:87)
    at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:694)
    at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:669)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:461)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
    at com.ensi.dao.Maintest.main(Maintest.java:13)
Caused by: java.io.FileNotFoundException: class path resource [classpath*:META-INF/db.properties] cannot be opened because it does not exist
    at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:157)
    at org.springframework.core.io.support.PropertiesLoaderSupport.loadProperties(PropertiesLoaderSupport.java:181)
    at org.springframework.core.io.support.PropertiesLoaderSupport.mergeProperties(PropertiesLoaderSupport.java:161)
    at org.springframework.beans.factory.config.PropertyResourceConfigurer.postProcessBeanFactory(PropertyResourceConfigurer.java:78)
    ... 6 more}

1 个答案:

答案 0 :(得分:0)

有三种可能性:

  1. 这是一个错字,因为你说文件是fb.properties,但对它的引用是db.properties。

  2. 您不是将文件复制到类路径目录,可能是目标目录或jar中,具体取决于您构建项目的方式。

  3. 你需要一个/之前的META-INF,正如我在this question的回答中找到的那样。