-1

Javaでのファイル作成に問題があります。この質問を見つけました Java IO: ファイルが生成されません

しかし、それは答えを提供しませんでした。

私のtomcat webappは、開発環境で実行されているときに、リモートフォルダー(\ myserver \ myfolder)にファイルxmlを作成できます。テストおよびrpod環境で公開すると、アプリは何も作成せず、これら2つのマシンはローカル環境と同じネットワークにあり、同じ許可も持っています。また、例外もスローしません!!!

ここに私のコードがあります:

try{            
        Util.useNet(true, "\\\\myserver\\myfolder\\");
        fos = new FileOutputStream("\\\\myserver\\myfolder\\")+ fileName);
        fos.write("<?xml version=\"1.0\"?>".getBytes("UTF-8"));
        byte[] bytes = xml.getBytes("UTF-8");
        fos.write(bytes);
        fos.flush();
    }catch (Exception e){
        Log.setErrorLog("errore", e);
    }
    finally{
            try{
                fos.close();
            }catch (Exception e) {

            }
    }

メソッド「useNet」は、コマンド「net use」も呼び出します(念のため)。

4

1 に答える 1

0

回答ありがとうございます。とても役に立ちました。:)

問題が見つかりました。それは、メソッドを「ネット使用」と呼んだ瞬間でした。

まず第一に、「net use」は末尾にスラッシュがあるパスを受け入れません。例:

 cmd net use /c \\\\myserver\\myfolder\\ mypassword /user:mydomain\\myuser

このコマンドは、正しく書き込まれている場合、通常は例外をスローしますが、私の場合は、これが原因ではありません。

/user:mydomain\\myuser

file.properties からプロパティ「mydomain\myuser」を取得しているときに気付きました。その値は「mydomain\myuser」です。

java は単一のスラッシュを好まないため、結果は次のような「net use」コマンドになりました。

cmd net use /c net use \\\\myserver\\myfolder\\ mypassword /user:mydomain@myuser

これが非スロー例外問題の原因でした。「filenotfoundexception: access denied」がスローされることを修正しましたが、これは別の話です。

したがって、最後に、正しい「net use」コマンドを次に示します。

 cmd net use /c \\\\myserver\\myfolder mypassword /user:mydomain\\myuser

ばかげた気晴らしのエラー恥ずかしいです、みんなごめんなさい!

ご協力いただきありがとうございます。

于 2015-01-28T10:43:53.867 に答える