【问题标题】:Configuring web.xml for resources为资源配置 web.xml
【发布时间】:2015-03-23 10:21:22
【问题描述】:

我可以配置我的 web.xml 以查找特定位置的资源(如属性文件)吗?

就像在构建过程中没有将任何属性文件添加到 WEB-INF/classes 文件夹一样,我想要实现的是在运行时它应该从 web.xml 中定义的指定位置获取所需的属性文件!!

如何实现??

【问题讨论】:

  • 你试过<import resource="path/file with extension"/> 吗?
  • 这东西在春天 ryt 有效??这里没有使用弹簧

标签: java jakarta-ee java-ee-6 web.xml


【解决方案1】:

您是否尝试在 web.xml 中定义一个变量来命名指向您的属性文件的环境变量?

喜欢:export CFG_LOCATION="/var/local/config/mycfg.properties"

在 web.xml 中

<context-param>
  <param-name>cfg_localtion_variable_name</param-name>
  <param-value>CFG_LOCATION</param-value>
</context-param>

【讨论】:

  • 顺便说一句...将配置值放在已编译的应用程序中通常是个坏主意,除非它们是静态的(如本地化)。使用上述方法配置您的应用程序,或使用带有 jndi-lookup 的数据源从数据库 cfg-table 中读取您的值。
  • 问题是,我必须在单个tomcat中部署多个war文件,并且这些war文件使用同名的属性文件,但属性文件中的键值对可能不同......所以按顺序为了完成它,我已经将其配置为如果请求来自 abc.war(假设 webapp 名称为 abc),那么它应该转到其各自的位置并选择那些属性文件,并且我无法更改代码。 ..所以我必须这样做,或者是否有任何其他方式而不更改代码?
  • 您好,我是通过以下方式完成的。我只是将我的变量指向一个目录而不是一个文件。属性文件的文件名与我的 servlet-context 完全相同。因此,对于通过属性文件注册为“localhost:8080/abc”的应用程序是 $CFG_LOCATION 目录中的 abc.properties。如果您使用的是 spring,请查看 PropertyPlaceholderConfigurer
  • 我没有使用弹簧
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-04-12
  • 2018-09-16
  • 1970-01-01
  • 2012-11-13
  • 1970-01-01
  • 1970-01-01
  • 2013-03-23
相关资源
最近更新 更多