【发布时间】: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 并进行了检查。然而结果并没有改变