gpt4 book ai didi

java - 使用 ClassLoader.getResourceAsStream 加载资源在特定机器上不起作用

转载 作者:行者123 更新时间:2023-11-28 23:35:45 25 4
gpt4 key购买 nike

我有一个供应商应用程序,它部署在 Windows 2008 服务器上的 Tomcat 6 中。该应用程序在该服务器上不工作,但是当我将 Tomcat 复制到另一台运行 Windows 7 的机器时,它正在工作。

当我分析 ClassLoader.getResourceAsStream 在 Windows 2008 服务器中返回 null 但在 Windows 7 机器中不返回的日志时。我检查了 tomcat webapp 文件夹完全控制权已授予运行 tomcat 服务器的用户的 Windows 文件权限。这可能是什么原因。

PS:这是一个供应商应用程序,所以我无法控制代码。

最佳答案

When I analysis the logs that ClassLoader.getResourceAsStream is returning null in the Windows 2008 server bot not in the Windows 7 machine.

这是无法找到指定资源时记录的行为。

I checked the windows file permission the tomcat webapp folder full control has given to the user which runs the tomcat server. What could be the reason for this.

这是一个棘手的问题。以下是一些需要检查的事项:

  • 您使用“getResourceAsStream”的路径是否正确?

  • 资源路径名是否包含可能导致 Windows 路径名查找行为异常的非 ASCII(或特殊)字符?

  • 自从您上次更改 WAR 文件后,网络应用程序是否已成功重新部署(即它是否已停止和启动)?

  • 您是否已将 Tomcat 配置为不展开 WAR 文件?如果是这样,那么问题可能是资源不再在 WAR 文件中......尽管出现在(先前扩展的)webapp 目录中。

  • 这是“homoglyphs”的问题吗?即不同但在显示时看起来相同的 Unicode 字符。

  • 是否有可能是病毒检查程序(或类似程序)正在锁定或删除文件?

关于java - 使用 ClassLoader.getResourceAsStream 加载资源在特定机器上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24847353/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com