【问题标题】:Java Webapp Cannot Find Local Server DirectoryJava Webapp 找不到本地服务器目录
【发布时间】:2023-03-04 18:52:01
【问题描述】:

我有一个 Spring MVC 3.1 webapp 在 CentOS 服务器上的 Tomcat 5.5 上运行。我有一个控制器,它检查位于网络共享上的文件是否存在,该文件安装在服务器上 (/netshare/data/)。我的应用程序似乎看不到这个目录,但是当我使用相同的代码运行独立的 java 应用程序时,它能够找到目录及其包含的文件而不会出错。 Tomcat中是否需要进行一些配置,以便Java可以引用webapp之外的目录?

这是我的控制器类:

@Controller
@RequestMapping("/Test")
public class TestController {

@RequestMapping(method=RequestMethod.GET)
public String showTest(Model model){
    List<String> messages = new ArrayList<String>();
    File dirTest = new File("/netshare/data");

    if (dirTest.isDirectory()){

        messages.add("Base directory found successfully!");

        File dataFileDir = new File("/netshare/data/dataFiles/");
        Integer fileId = 8000;

        File dataFile = new File(dataFileDir, fileId.toString() + ".pdf");
        if (dataFile.exists()){
            messages.add("Data file found!");
        }
        else {
            messages.add("Data file NOT found!");
        }
    }
    else {
        messages.add("Base directory not found!");
    }

    model.addAttribute("messages", messages);
    return "test";
}

【问题讨论】:

  • 如果您将此路径更改为指向某个本地目录会发生什么?
  • @AndrewLogvinov 本地,您是指在 webapp 文件夹内,还是本地文件系统目录(例如 /usr/home)?
  • 我的意思是第二个,f.e. /usr/home/tmp.
  • @AndrewLogvinov 该应用程序能够毫无问题地看到/usr/home。挂载的目录应该可供所有用户访问,但现在我必须确认这一点。
  • 看起来确实是权限问题。尝试使用运行 Tomcat 的同一操作系统用户运行独立程序。即使从命令行访问目录也应该足够了。

标签: java linux tomcat web-applications spring-mvc


【解决方案1】:

原来这是 Web 服务器访问 Isilon 服务器的权限问题,而不是我的 webapp 或 Tomcat 配置的问题。谢谢大家的帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-07
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    • 2019-08-15
    • 2015-02-10
    相关资源
    最近更新 更多