- - PR -
JAVAでアプリケーションサーバーからファイルサーバーにファイルコピーを行いたい
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2008-01-31 16:27
初めて書き込みさせていただきます。
システム環境は、1台の端末(WindowsXP)と2台のWindows2003Server(1台はアプリケーションサーバー、もう1台はFileサーバー)の構成です。 アプリケーションサーバーは、Tomcat5.5.15、Apache2.0.58を連携させています。 上記アプリケーションサーバー環境でJAVAを使用してアプリケーションを作成しており、掲題の件にて悩んでおります。 JAVAでは「Filechannel」や、「Runtime.getRuntime().exec」などの手段でテストを行っており、デバック環境として使用している「Eclipse」上では正常にPC間ファイルコピーが出来ています。 しかし、アプリケーションサーバーにて同じモジュールを実行すると、ファイルサーバーが見えないためにファイルコピーが出来ません。 Windows上ではネットワークドライブの割り当てを事前にしておくなどの対応はしているのですが、Apache経由で行うと見えなくなってしまいます。 アプリケーションサーバー上で、手動コマンドラインからのファイルサーバーへのファイル(一般的なデータCSV)コピーは可能です。 以上の事から、Apacheの設定が怪しいのかと思い調査を続けているのですが、めぼしい解決策が見つからないため、ここに書き込ませてもらいました。 宜しくお願いいたします。 |
|
投稿日時: 2008-01-31 16:31
エクスプローラ上からは見えて、Tomcat上から見えないのですよね?
ユーザの権限の問題のように思えますね。 Tomcatの問題というよりはWindows2003Serverの話題になるのかな。 |
|
投稿日時: 2008-01-31 17:39
IISのプロセスを起動しているユーザに、
ファイルサーバ上のネットワークフォルダへの書き込み権限がないためではないでしょうか。 まずは、ファイルコピーができなかったときのログやスタックトレース出力を 確認することが先だと思います。 |
|
投稿日時: 2008-02-01 13:34
nagiseさん、koeさん、返答ありがとうございます。
nagiseさんにご指摘いただいた点なのですが、アプリケーションサーバーをXPのPCに構築しても同現象となっています。 また、2003サーバー上においてもApacheを停止し、EclipseからTomcatを立ち上げて実行するとコピーできる事からApacheの設定を疑っていました。 koeさんにご指摘いただいたApacheのログ、Tomcatのログなのですが、Runtimeを使用した場合にはどちらにもエラーが出ていません。 Fileオブジェクトを使用した際には、「java.io.FileNotFoundException: パス+ファイル名(アクセスが拒否されました。)」が出力されています。 つまり、ご指摘通りコピー先への権限が無いためなのだと認識しているのですが、なぜApache+Tomcatだとそうなってしまうのかがわからず悩んでおります。 Eclipse+Tomcatだと○、Apache+Tomcatだと×・・・ これもIISのプロセスのユーザー権限という事なのでしょうか? |
|
投稿日時: 2008-02-01 15:51
Tomcatはサービス起動になっていたりしていませんか?
サービスで起動する場合と、Eclipseで起動する場合は実行ユーザが違います。 当然実行権限も違います。 |
|
投稿日時: 2008-02-01 17:09
かつのりさん
記載情報が足りなくて申し訳ありません。 Eclipseを使用する際は、Tomcat、Apacheのサービスは停止しています。 その上でEclipse上でサーバー起動しています。 Eclipseでの起動と、サービスからの起動で実行権限が違う・・・ その実行権限の差がわかればこの問題は解けるという事でしょうか? Apache+Tomcatの差異の実行権限はどうやれば変更できるのでしょうか? 知識が乏しくて申し訳ありません<(_ _)> 調査は続けておりますが、何かヒントを与えていただけたらありがたいです。 |
|
投稿日時: 2008-02-01 19:34
とりあえず過去ログでも読んでください。
@IT Java会議室:Tomcatの起動方法の違いによるファイルへの参照の成否 |
|
投稿日時: 2008-02-05 18:28
koeさん
レスが遅れて申し訳ありません。 情報ありがとうございます。 勉強しなおします<(_ _)> |
1