Как разрешить приложению, запущенному на Tomcat, доступ к сетевому каталогу? - PullRequest
2 голосов
/ 28 марта 2012

Я запускаю веб-приложение (написанное на Java) на сервере Tomcat, работающем под Windows 7. В какой-то момент в приложении я пытаюсь получить доступ к каталогу на удаленной машине через базовый класс java.io.File. .

Если я запускаю Tomcat из командной строки через «tomcat6.exe // TS // MyServiceName», мое приложение может успешно найти сетевой каталог. Когда я запускаю Tomcat как сервис, он думает, что каталог не существует.

Основываясь на некоторых исследованиях, я предполагаю, что это проблема аутентификации. Я обновил службу Windows для входа в систему как мою учетную запись пользователя домена и обновил службу tomcat, добавив имя пользователя и пароль с помощью tomcat6.exe // US // MyServiceName --User = "bhardage" --Password = "xxx" ', но даже с обоими этими изменениями он все равно не находит сетевой каталог.

Я также попробовал tomcat6.exe // US // MyServiceName --User = "mydomain \\ bhardage" --Password = "xxx" ", но безуспешно.

Может ли кто-нибудь сказать мне, как правильно запустить мое веб-приложение под другим пользователем?

Любая помощь / предложения приветствуются.

Спасибо

B.J.

Ответы [ 2 ]

1 голос
/ 29 марта 2012

«Вход в систему» ​​должен работать (я использовал его несколько раз), если эта учетная запись имеет необходимые права на сетевой ресурс.

Когда вы запускаете его из командной строки, и он работает, вы вошли в систему как "bhardage"?

Теперь, когда вы запускаете его как службу, какую учетную запись вы видитеTomcat работает в диспетчере задач?

1 голос
/ 28 марта 2012

Возможно, возникли некоторые проблемы с функцией «Войти как». Может быть, эти проблемы все еще существуют.

Вы можете попытаться установить учетную запись пользователя через свойства службы tomcat в диспетчере службы Windows.

Вот описание как это сделать. Посмотрите на попытку № 3. Она основана на старой версии tomcat (5.5), но должна работать так же.

Edit:

Возможно, ваш сетевой каталог не сопоставлен, когда служба запускает tomcat. Это может быть связано с тем, что пользователь входит в систему в отдельном акте входа.

Попробуйте выполнить команду «net use» перед доступом к сетевому каталогу. Это можно сделать с помощью:

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