如何允许在Tomcat上运行的应用程序访问网络目录?

时间:2012-03-28 19:42:19

标签: java tomcat windows-7 windows-services

我在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”'没有运气。

有人能告诉我让我的网络应用程序在不同用户下运行的正确方法吗?

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

谢谢,

B.J。

2 个答案:

答案 0 :(得分:1)

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

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

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

编辑:

当服务启动tomcat时,可​​能没有映射您的网络目录。这可能是因为用户在单独的登录操作中登录。

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

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

答案 1 :(得分:1)

“登录”必须有效(我已经使用了很多次),只要该帐户拥有网络共享的必要权利。

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

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