java - 文件对象在 Java Web App 中不起作用

标签 java jakarta-ee file-io

我的 Web 应用程序中有一个简单的 java 类,我在其中编写了以下代码,但它不起作用

File test= new File("/templates/xmdForModel.xsd");

templates 文件夹位于应用程序的根文件夹内。

文件的位置是----> application-root/package/test.java
文件的位置是 --------> application-root/testRoot/template/xmdForModel.xsd

错误

无法读取架构文档“file:/templates/xmdForModel.xsd”,因为 1) 找不到该文档; 2)文档无法读取; 3) 文档的根元素不是 .

最佳答案

如果您想查找 Web 应用程序内部文件的文件名,可以使用 ServletContext#getRealPath .

但是,我建议使用类加载器 Class#getResourceAsStream 来加载资源。 。这样,即使该文件并不真正作为文件存在(例如仅在 jar 内),它也可以工作。

如果这是用户应该编辑(或写入)的文件,我会将其放置在 Web 应用程序之外,然后指定绝对路径(例如“/etc/myapp/conf/xmd.xsd") 带有可配置的前缀。

关于java - 文件对象在 Java Web App 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14065783/

相关文章:

java - 如何使用扩展类的 JPanel 对象?

java - 我正在尝试用 java 更新我的数据库。我正在 netbeans 中工作,代码中没有错误,但行仍然没有更新

java - 可以执行 JavaScript 的服务器端浏览器

java - 独立的 Java EE 应用服务器

Java EE、Web 服务客户端、Java

java - 如何找出哪个对象在 Java 中打开了文件?

Python:将值读入空数组,然后返回文件

java - 如何使用 Wikipedia API 提取/解析我要查找的链接?

jakarta-ee - 如何将用户从/页面重定向到 html 页面?

python - 如何在 Python 函数中同时接受文件名和类文件对象?