java - 无法打开类路径资源 [default/jdbc.properties],因为它不存在

标签 java spring hibernate maven tomcat

我认为我在继承的一个大型 Maven 多模式项目中取得了良好的进展。在 Tomcat 和 JAVA 项目的所有方面,我都是一个完全的初学者,所以请原谅我的天真。我相信我需要知道如何定义我的 JDBC 属性配置的位置,但老实说我不知道​​从哪里开始。

我正在尝试使用“mvn tomcat7:run”通过终端运行我的项目并收到如下所述的严重错误。

具体错误原因:

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'eu.digient.billfold.support.dao.properties': Invocation of init method failed; nested exception is java.io.FileNotFoundException: class path resource [default/jdbc.properties] cannot be opened because it does not exist

我在 Maven 项目中的许多 .IML 文件中找到了这个字符串,语法是什么意思,它在哪里寻找配置?

 <util:properties id="eu.digient.billfold.support.dao.properties"
                 location="classpath:#{systemProperties['configProfile']?:'default'}/jdbc.properties" />

关于 JBDC 配置的任何提示和建议都很棒,我知道它用于定义数据库连接详细信息。在这种情况下,与 Hibernate for JAVA 的连接对我来说是全新的。

(除了通过 block 引用之外,我不确定如何将它作为 block 添加到下面,所以如果我错过了一种更具可读性的方法?)

完整的终端错误输出:

SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.context.support.PropertySourcesPlaceholderConfigurer#0': Cannot resolve reference to bean 'eu.digient.billfold.support.dao.properties' while setting bean property 'properties'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'eu.digient.billfold.support.dao.properties': Invocation of init method failed; nested exception is java.io.FileNotFoundException: class path resource [default/jdbc.properties] cannot be opened because it does not exist at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:329) at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:198) at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:657) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:461) at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:389) at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:294) at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4797) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5291) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'eu.digient.billfold.support.dao.properties': Invocation of init method failed; nested exception is java.io.FileNotFoundException: class path resource [default/jdbc.properties] cannot be opened because it does not exist at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1488) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323) ... 23 more Caused by: java.io.FileNotFoundException: class path resource [default/jdbc.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.EncodedResource.getInputStream(EncodedResource.java:143) at org.springframework.core.io.support.PropertiesLoaderUtils.fillProperties(PropertiesLoaderUtils.java:98) at org.springframework.core.io.support.PropertiesLoaderSupport.loadProperties(PropertiesLoaderSupport.java:175) at org.springframework.core.io.support.PropertiesLoaderSupport.mergeProperties(PropertiesLoaderSupport.java:156) at org.springframework.beans.factory.config.PropertiesFactoryBean.createInstance(PropertiesFactoryBean.java:113) at org.springframework.beans.factory.config.PropertiesFactoryBean.createProperties(PropertiesFactoryBean.java:98) at org.springframework.beans.factory.config.PropertiesFactoryBean.afterPropertiesSet(PropertiesFactoryBean.java:69) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485) ... 30 more

最佳答案

jdbc.properties文件放在src\main\resources\default目录下

关于java - 无法打开类路径资源 [default/jdbc.properties],因为它不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35824197/

相关文章:

java - 如何在 Java 中将多个值存储在字节数组中?

java - 将 JedisPool 与 Tomcat 一起使用,资源不会返回到池中

java - Spring Controller /服务/存储库中的泛型

linux - 为什么创建 Session Factory 需要这么长时间?

java - 使用 springs getHibernateTemplate,如何获取用户列表并限制结果集?

java - 使用 `sessionFactory` 和 `transactionManager` 解决 Spring 中的循环依赖问题

java - Play JPA 查询示例

spring - 如何从 Spring 中获取实例化 bean 的列表?

java - 了解 JTA Spring 和 Bitronix

java - 使用 hibernate/jdbc 以值/对象列表作为参数从 java 代码调用存储过程