※ ChatGPTを利用し、要約された質問です(原文:Tomcatで出来るファイルコピーがInterstageでは出来ない)
TomcatとInterstageでのファイルコピーの違い
このQ&Aのポイント
Tomcatで行えるファイルコピーがInterstageではできない
開発環境(APサーバー:Tomcat)では問題なくファイルコピーができるが、実環境(APサーバー:Interstage)ではエラーが発生する
Interstage上でのファイルコピーにおいて、出力先の指定がローカルのフォルダでは問題なくできるが、ネットワーク越しの他のマシンのフォルダを指定するとエラーが発生する
Tomcatで出来るファイルコピーがInterstageでは出来ない
ごらんいただき、ありがとうございます。
現在、Webシステムの開発を行っているのですが、
開発環境(APサーバー:Tomcat)では問題なく出来る処理が
実環境(APサーバー:Interstage)ではエラーになり
困っています。
OSは開発環境がXP Home、実環境はWin2000サーバーまたは2003サーバーです。
以下、ソースです。
コピー元のファイルの取得にはStrutsのFormFileを利用しています。
FormFile formFile = (FormFile)dynaForm.get("XXXXX");
InputStream in = null;
FileOutputStream bos = null;
try{
// 出力先フォルダを取得
String path = 【プロパティファイルから出力先フォルダ名を取得】;
// 入力ストリームの作成
in = formFile.getInputStream();
// 出力ストリームの作成
bos = new FileOutputStream(path + File.separator + formFile.getFileName());
// ファイルの書き出し
int bytesRead = 0;
while ((bytesRead = in.read()) != -1) {
bos.write(bytesRead);
}
}catch(Exception e){
【例外処理】
}finally{
【ストリームのクローズ】
}
上記の処理ですが、Interstage上で実行した時に
出力先をローカルのフォルダ(例:C:¥temp)にした時は問題がなく
ネットワーク越しに他のマシンのフォルダ(例:¥¥test-server¥work)を
指定した場合には
java.io.FileNotFoundException
¥¥test-server¥work¥xxxxx.txt (アクセスが拒否されました。)
というエラーが発生します。
開発環境では全く問題はありません。
Itnerstageの設定か、OS絡みの問題かと思い調べていましたが
行き詰ってしまいました。
何かご存知の方がいらっしゃいましたら、助言をよろしくお願い致します。
お礼
なるほど、サービス自体にアクセス権限が必要なんですね。 サーバーOSに疎いため、そこまで思いが及びませんでした・・・ ありがとうございました、もう少し調べてみます。
補足
TransactionDirectorというサービスに アカウントを設定したら書き込み可能になりました。 ありがとうございます。