【问题标题】:How would I allow an application running on Tomcat access to a network directory?如何允许在 Tomcat 上运行的应用程序访问网络目录?
【发布时间】:2012-03-28 19:42:19
【问题描述】:

我正在 Windows 7 上运行的 Tomcat 服务器上运行 Web 应用程序(用 Java 编写)。在应用程序的某个时刻,我尝试通过基本的 java.io.File 类访问远程计算机上的目录.

如果我通过“tomcat6.exe //TS//MyServiceName”从命令行启动Tomcat,我的应用程序可以成功找到网络目录。但是,当我将 Tomcat 作为服务启动时,它认为该目录不存在。

根据一些研究,我假设这是一个身份验证问题。我已将 Windows 服务更新为“登录为”我的域用户帐户,并更新了 tomcat 服务以使用“tomcat6.exe //US//MyServiceName --User="bhardage" 添加用户名和密码--Password="xxx"',但即使进行了这两项更改,它仍然找不到网络目录。

我也试过 'tomcat6.exe //US//MyServiceName --User="mydomain\\bhardage" --Password="xxx"' 没有运气。

谁能告诉我让我的 Web 应用程序在不同用户下运行的正确方法?

非常感谢任何帮助/建议。

谢谢,

B.J.

【问题讨论】:

    标签: java tomcat windows-7 windows-services


    【解决方案1】:

    “登录身份”功能似乎存在一些问题。也许这些问题仍然存在。

    您可以尝试通过windows服务管理器中tomcat服务的属性设置用户账号。

    这里是description 如何做到这一点。查看第 3 次尝试。它基于旧版本的 tomcat (5.5),但应该以相同的方式工作。

    编辑:

    可能服务启动时你的网络目录没有映射到tomcat。这可能是因为用户在单独的登录行为中登录。

    在访问网络目录之前尝试执行“net use”命令。这可以通过以下方式完成:

    Runtime.exec("net use Z: \\\\My\\Share")
    

    【讨论】:

    • 很抱歉给您带来了误会。我实际上已经在 Windows 服务管理器中设置了“登录身份”属性,但没有成功。
    • 嗯,这很奇怪。我想我也有过这个问题。据我记得这是解决它的方法。之后你是否也重启了服务?
    • 是的,我已经重启了几次服务,没有任何变化。如果我从命令行启动它仍然可以工作,但如果我从 Windows 服务管理器启动它就不行。
    • 我已经用另一种可能性更新了答案。未通过命令行启动时,可能未在新服务登录中映射共享。
    • 我试过了,没有任何变化。我没有从我的代码中执行它,而是在访问网络目录之前立即从命令行执行它
    【解决方案2】:

    “登录”必须起作用(我已经用过很多次了),只要该帐户具有网络共享的必要权限。

    当您从命令行启动它并且它可以工作时,您是否以“bhardage”身份登录?

    现在,当您将它作为服务启动时,您在任务管理器中看到tomcat 运行在哪个帐户下?

    【讨论】:

    • 当我打开进程资源管理器时,我可以看到 tomcat6.exe 正在“mydomain\bhardage”下运行。当我打开命令提示符(从命令行运行 tomcat)时,它也在“mydomain\bhardage”下运行。如果这不是权限问题,我不确定问题可能是什么,但我想我将不得不更多地研究它
    • 您是如何访问网络共享的?是使用 \\some_machine\some_share 还是使用驱动器号(如 X:)?
    • 我正在尝试通过映射文件夹访问它,即驱动器号
    • 映射的驱动器在登录时设置。不能 100% 确定它是否可以作为服务使用。可以尝试“\\some_machine\some_share”表示法,看看是否可行。首先从命令行尝试它,当它工作时,通过服务尝试相同。
    • 所以无论出于何种原因,我都无法在我的本地机器上解决它(可能是某处的用户错误),但我们能够使用你提到的步骤让它在客户端机器上运行和大卫。我将把答案交给大卫,因为他是第一个回应的人
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-25
    • 1970-01-01
    • 2020-05-11
    • 1970-01-01
    • 1970-01-01
    • 2020-01-02
    • 2017-05-22
    相关资源
    最近更新 更多