【问题标题】:Error when trying to read a .properties file outside java .war尝试读取 java .war 之外的 .properties 文件时出错
【发布时间】:2017-04-10 07:53:33
【问题描述】:

我正在构建一个 Java Web 应用程序,它允许用户将一些文件上传到服务器。由于 .war 文件可能部署在具有不同文件系统层次结构的服务器中,我想提供一个 .properties 文件并让服务器管理员在初始系统配置期间定义保存这些文件的位置。然后,我的应用程序将读取此 .properties 文件以确定上传文件的存储位置。

在寻找一种方法时,我在 Stack Overflow 上遇到了一个类似的问题,并尝试按照以下答案中的说明进行操作。
https://stackoverflow.com/a/8941774

我想试试这个解决方案是否可行。 所以我编辑了我的 /usr/share/tomcat8/conf/context.xml 文件,并在<Context> </Context> 标签之间包含了以下内容

<Environment name="config" value="/home/nilushan/temp/"  
     type="java.lang.String" override="false"/>

我在 /home/nilushan/temp 中创建了一个名为 yourfile.properties 的文件,并复制了给定的 Java 代码并执行了它。

但是,我不断收到“jndi 查找中的异常”消息。更改代码以打印异常后,这就是我得到的
“jndi 查找中的异常:javax.naming.NameNotFoundException:名称 [config] 未绑定在此上下文中。无法找到 [config]。”

从错误消息中我了解到,这与无法读取 context.xml 文件中的内容有关,与 yourfile.properties 文件无关。

谁能告诉我我做错了什么来得到这个错误以及如何解决它?

【问题讨论】:

  • 试着把家门前的/去掉。在您找到的答案中,给定的路径从根 (C:\...) 开始,所以它是绝对的。但显然您使用的是从文件夹 home 开始的相对路径。
  • @IQV,我按照建议删除了 home 的前导 / infront 并进行了检查。然而结果并没有改变

标签: java tomcat


【解决方案1】:

这个问题的一个很好的解决方案是使用配置服务器。当你设置它时,你可以指导你的属性文件从中获取它的配置。它很容易设置,这里是文档的链接(它很短,所以你应该很快就能理解)link。您也可以将其用于其他 war/jar 文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-15
    • 2021-03-15
    • 2020-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多