【问题标题】:Issue with a network disk context to access images outside Tomcat访问 Tomcat 外部图像的网络磁盘上下文问题
【发布时间】:2021-07-05 08:15:40
【问题描述】:

我正在使用 Tomcat 9.0 / Java 8 在 Windows 上工作 我的一个 servlet 将创建和管理相当多的图像。 所以我们决定将它们存储在网盘上。

在我的 Windows 服务器上,我将资源安装在 P:/

为了访问 Tomcat 之外的图像,我在 server.xml 的 host 中设置了上下文。 为了确保它工作正常,我首先在本地尝试这样:

<Context docBase="C:/IMG/" path="/RepIMG" />

如果我尝试访问:http://localhost/RepIMG/test.jpg 显示图像。

但如果我将上下文更改为:

<Context docBase="P:/IMG/" path="/RepIMG" />

Tomcat 根本不会启动并出现此错误: 原因:java.lang.IllegalArgumentException: L'ensemble de ressources principal [P:] est invalide

=> 主资源 [P:] 无效

如果我尝试使用 Chrome 直接访问 P:/IMG/test.jpg 它工作正常。 我检查了文件夹的权限,一切似乎都正常。

由于它在我访问本地磁盘时正常工作,我认为问题在于我尝试访问已安装的磁盘。

有什么要指定的或解决此问题的方法吗? 想知道到底出了什么问题?

【问题讨论】:

    标签: tomcat tomcat9 catalina


    【解决方案1】:

    我假设您将 Tomcat 作为服务运行(例如,不是通过您的 IDE 或命令行)。这样,它将在不同的上下文中运行,可能是作为不同的用户。该上下文/用户帐户没有您的本地用户的驱动器映射 - 只有本地磁盘对于所有帐户都是相同的。

    【讨论】:

    • 谢谢,这似乎是问题所在。我试图用我的会话启动 Tomcat,但它没有解决问题。我还尝试使用 UNC 路径设置 server.xml,但无济于事: 。 .以防万一:
    • 好吧,那些网络路径可能需要身份验证...不确定是否允许 tomcat 使用的服务用户访问它们。 (注意:我无法帮助您了解 Windows 网络细节,只指出最可能的原因)
    • 好的,我继续挖,非常感谢您的帮助!
    • Tomcat 9.0 默认以LocalService 运行(检查 Procrun/Tomcat Monitor),它在网络上提供来宾凭据。您可能希望将其更改为 NetworkService,它使用网络上机器的凭据。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-17
    • 1970-01-01
    • 2020-12-10
    • 1970-01-01
    • 2020-01-31
    • 1970-01-01
    • 2015-07-30
    相关资源
    最近更新 更多