我在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。
答案 0 :(得分:1)
“登录身份”功能似乎存在一些问题。也许这些问题仍然存在。
您可以尝试通过Windows服务管理器中的tomcat服务的属性设置用户帐户。
这是description如何做到这一点。查看尝试编号3.它基于旧版本的tomcat(5.5),但它应该以相同的方式工作。
编辑:
当服务启动tomcat时,可能没有映射您的网络目录。这可能是因为用户在单独的登录操作中登录。
尝试在访问网络目录之前执行“net use”命令。这可以通过以下方式完成:
Runtime.exec("net use Z: \\\\My\\Share")
答案 1 :(得分:1)
“登录”必须有效(我已经使用了很多次),只要该帐户拥有网络共享的必要权利。
当您从命令行启动它并且它有效时,您是否以“bhardage”身份登录?
现在,当您将其作为服务启动时,您会在任务管理器中看到哪个帐户运行?