【问题标题】:Where I can find saved file in web application我可以在 Web 应用程序中找到保存的文件的位置
【发布时间】:2012-04-19 14:02:42
【问题描述】:

我在本地主机中有 weblogic。我的 Web 应用程序保存了一些 rdf:

String name = UUID.randomUUID().toString();
FileOutputStream fop = null;
try {
    fop = new FileOutputStream(name);
} catch (FileNotFoundException e) {

}
model.write(fop);

当我转到保存此文件的 url 时,出现此错误:

XML Parsing Error: no element found
Location: http://url/0260fcff-b53d-4d18-8fb0-fb31f6a6ff1a.rdf
Line Number 1, Column 1:

在我的电脑中哪里可以找到这个文件?

PS 我尝试使用 java 应用程序保存这个文件,它可以工作,所以 rdf 应该没问题。

【问题讨论】:

  • close文件流了吗? (那不在代码 sn-p 中)
  • 不,但我添加了这个,但结果是一样的,但还是谢谢

标签: java web-applications servlets


【解决方案1】:
  1. 当您在未指定路径的情况下保存文件时,该文件将保存在 您的 JVM 被调用的位置。对于 Web 应用程序,这通常是 bin 文件夹。所以请检查那个位置(例如,对于 tomcat,它将是 {TOMCAT_HOME}/bin)

  2. 您访问文件的方式(http://url/0260fcff-b53d-4d18-8fb0-fb31f6a6ff1a.rdf) 您希望它位于 Web 应用程序的根目录中。 例如,如果您有一个基于 tomcat 的应用程序,比如 myapp.war,那么您的 Web 应用程序的根目录将是 {TOMCAT_HOME}/webapp/myapp

  3. 这就是通过 URL 访问时找不到生成的文件的原因。

  4. 要使其工作,请指定文件输入流的路径(绝对路径)(创建具有所需路径位置的 File 对象,在本例中为 {TOMCAT_HOME}/webapp/myapp

【讨论】:

  • 你能在这里写下我如何在我的网络应用程序中找到 {TOMCAT_HOME} 吗? t
  • 是tomcat服务器的安装目录
  • 是的,我知道,但我无法在应用程序路径 = "/../../" 中设置字符串,因为当我将此应用程序部署到其他系统时,它会停止工作
  • 遇到了问题。出路是。将环境变量的值设置为 webapp 的根(例如 APP_ROOT=c:\tomcat\webapp\myapp)并使用 System.getenv("APP_ROOT") 在代码中获取其值。确保在启动应用程序之前设置此环境变量。
【解决方案2】:

System.out.println(new File(".")) 会给你路径。但是你应该避免相对路径。为您的应用程序配置一个绝对路径并使用它。

另请注意,您通常不会将文件存储在应用程序本身中。您将它们存储在一个单独的位置,并通过一个特殊的控制器将它们提供给客户端,该控制器读取它们并将它们流回。

【讨论】:

  • 很好,我找到了它,一切似乎都很好,所以我不知道为什么我仍然遇到这个错误,但这是另一个问题,所以非常感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多