0

本番環境とテスト環境があります。本番環境では、win2k3 + tomcat 6.0+とネットワークドライブがドライブ文字にマップされているため、簡単にアクセスできます(\ symba \ files \ appの代わりにz:\ app)。私のテスト環境にはWindowsXPがあり(サーブレットのソースコードを含むすべてのソフトウェアは同じです)、テストにもネットワークドライブへの同じドライブ文字マッピングがあります。

Tomcatは両方のシステムで同じユーザーIDで実行されており、テストm/cと本番m/cのWindowsエクスプローラーを介してファイルにアクセスできます。

これで、Windows XP M / C(テストM / C)のサーブレットは、既存のファイル(Windowsエクスプローラーからアクセス可能)にアクセスしようとすると、ファイルが見つからないという例外をスローします。本番環境のサーブレットはtestenvの場合と同じであり、本番サーブレットは、要求したときにファイルを喜んで提供し、エラーをスローしません。

ドライブ文字を使用するのは良い考えではなく、代わりにUNCパスを使用する必要があるという投稿をいくつか見ましたが、これはまだ試していません。テストサーブレットがファイルの取得に失敗するのに、本番サーブレットが正常に動作する理由を知りたい。

お時間をいただき、ありがとうございました。Boを助けてください。

4

3 に答える 3

2

アプリケーションサーバーをサービスとして実行していますか?ドライブ文字の割り当ては、サービスではなくインタラクティブプログラムを使用する場合にのみ信頼できます。

数年前、私はまったく同じ問題を解決しようとしましたが、ついに諦め、JCIFSを使用してファイルにアクセスしました。

于 2010-09-23T13:55:15.827 に答える
0

マップされたドライブにアクセスできるユーザーとしてTomcatサービスを実行することを検討することをお勧めします。

andcozが指摘しているように、SYSTEMTomcatの実行に使用されていると思われるWindowsのユーザーにはマッピングは適用されません。ドライブマッピングを所有するユーザーとして実行するようにサービス構成を変更し、障害が引き続き発生するかどうかを確認できます。

関連

ファイルが存在する場合にスローされるFileNotFoundException。

于 2010-09-23T15:12:41.430 に答える
0

セキュリティマネージャを使用してTomcatを実行する場合、Webアプリコードはデフォルト設定に従って、デプロイメントディレクトリへのファイルアクセスのみが許可されます。アプリケーションポリシーを変更する場合は、conf / catalina.policyで変更できます。または、Webアプリコードにすべての権限を付与する場合は、セキュリティマネージャーを無効にすることができます。

于 2010-09-23T13:57:23.407 に答える