首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >由于指定的配置文件[默认]不匹配而跳过XML定义文件

由于指定的配置文件[默认]不匹配而跳过XML定义文件
EN

Stack Overflow用户
提问于 2017-06-26 19:34:58
回答 2查看 1.8K关注 0票数 3

我们在tomcat上部署了一个Spring应用程序,它没有启动。

应用程序错误如下:

代码语言:javascript
复制
Caused by: org.springframework.beans.PropertyBatchUpdateException; nested 
PropertyAccessExceptions (1) are:
PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'driverClassName' threw exception; nested exception is java.lang.IllegalStateException: Could not load JDBC driver class [${hibernate.connection.driver_class}]
at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:121)
at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:75)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1564)
... 49 more

我们确实在以下位置定义了一个属性文件: /opt/tomcat/appname/tomcat8-2,包含三个文件: config.properties、core-ws.proprties和log4j-config.xml。

我们知道${TOMCAT_CONFIG_HOME}被定义为: /opt/tomcat/appname/tomcat8-2

我们知道文件权限是正确的,运行tomcat的用户对此配置目录中的目录和文件具有读取权限。我可以作为tomcat用户编辑/读取属性文件。所以我们知道这不是权限问题。

在应用程序日志中,我们得到了以下错误消息:

代码语言:javascript
复制
Skipped XML bean definition file due to specified profiles [default] not matching: class path resource [spring/app-platform-entity-context.xml]

Spring应用程序上下文文件对于属性具有如下内容:

代码语言:javascript
复制
<beans profile="default">
     <context:property-placeholder location="file:${TOMCAT_CONFIG_HOME}/core-ws.properties" />
 </beans>

最后,下面是核心ws.properties的样子:

代码语言:javascript
复制
hibernate.connection.url=jdbc:oracle:thin:@//123.456.789/APP_DB
hibernate.connection.driver_class=oracle.jdbc.driver.OracleDriver
hibernate.connection.username=some_db_user
hibernate.connection.password=some_db_password

所以,我已经调查了这几天,我是在我的智囊团。我可以告诉您,log4j-config.xml文件没有问题。这个应用程序可以找到它,并且可以很好地阅读它。只是这个参数似乎在破坏应用程序.

如果能在这个问题上提供任何帮助,我将不胜感激。谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-01 02:10:03

之所以跳过XML文件,是因为我们的CATALINA_OPTS设置中有一个CATALINA_OPTS。

直到我们开始导出像tomcat一样的值,我们才找到它。

一旦我们删除了这一行,我们的默认配置文件将按其应有的方式进行处理。

谢谢!

票数 1
EN

Stack Overflow用户

发布于 2018-05-21 18:53:14

为独立应用程序回答这个问题:

在我的例子中,由于设置ApplicationContext的顺序,在设置配置文件之前,我正在加载xml文件。正确的顺序是:

代码语言:javascript
复制
  GenericXmlApplicationContext ctx =
            new GenericXmlApplicationContext();
    ctx.getEnvironment().setActiveProfiles("dev");
    ctx.load("com/profiles/*-config.xml");
    ctx.refresh();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44767392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档