- - PR -
リモートコンピュータへのアクセス
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2008-07-07 22:34
ファイルをインポートするjavaアプリを作成し、 サーブレットからRuntime.getRuntime().exec()で起動しています。 すると、ローカルコンピュータ内のフォルダからはファイルの一覧が返ってくるのですが、 リモートコンピュータにアクセスするとファイルの一覧が返ってきません。 恐らく、実行権限の問題だろうと思うのですが、その方法がわからず途方に暮れてます。 また、インポートするjavaアプリは、シェルから起動した場合や、バッチに組込み起動(エクスプローラから)した場合は リモートコンピュータからもファイルの一覧は正常に返ってきます。 リモートコンピュータのフォルダは、ネットワークドライブ(Z:\)として接続し、ファイルは複数見えており読み書きは自由に行えます。 ●サーブレット呼び出し部分抜粋です。 String[] cmdarray = {"cmd", "/c", "javaw fileimport"}; Process process = Runtime.getRuntime().exec(cmdarray); ●インポートするjavaアプリ抜粋です。(fileimport.class) String config_path = "Z:\\"; //Fileオブジェクトの生成 File directory1 = new File(config_path); //フォルダが存在すれば if (directory1.exists()){ //ディレクトリ内のファイル・ディレクトリ一覧を取得 String[] directory_list = directory1.list(); for (int i = 0; i < directory_list.length; i++) { if (m_cu.RegExp_bool(directory_list[i], config_regexp)){ // エクセルファイルをインポート if(ImportCsvFile(config_path,directory_list[i]) == Const.RETURN_NORMAL){ m_log.info("OK"); } } } } OSは、リモート、クライアント共にwindows 2003 R2です。 どのようにすれば、Windows上で操作するのと同様の権限で実行させられるのでしょうか? よろしくお願いします。 |
|
投稿日時: 2008-07-08 00:39
サーブレットからどうしてJavaアプリを外部プロセスとして実行する必要があるんでしょ?
単純にライブラリとして組み込んで直接呼び出したらばどうです? また、一覧が帰ってこないというのは例外か何かが発生しているんですか? それとも何も取得できないんですか? さらに、リモートドライブを参照するときに認証が必要とかありませんか? |
|
投稿日時: 2008-07-08 12:01
わたなべ様、アドバイスいただき、感謝いたします。
ご指摘どおり、ライブラリにして組み込み直接呼出ししてみましたがやはり、ファイルの一覧が取得できません。 また取得時に例外なども発生せず、 //フォルダが存在すれば if (directory1.exists()){ } このif文の中に入ってくれません。 リモートドライブを参照するときに認証ですが、通常のwindows認証のみです。 このサーバー以外にも接続されているサーバーはあるのですが、そちらは一覧が返ってきます。 なにかリモートドライブを参照するときに認証させる方法等があればご教授お願いします。 |
|
投稿日時: 2008-07-08 12:40
「Java ネットワークドライブ 認証」で検索を行えば、色々と面倒ということはすぐに解るかと思います。
で、個人的にはその辺りはJavaの範疇でもないし、Windowsの管理に詳しい人でもいないと難しい問題と思います。 どちらかといえば、CSVファイルを取り込む目的のようですが、"Windowsの"常駐ソフト等を用いてWebサーバ側にCSVファイルをコピーする方が良いと思います。 このやり方であれば、Webサーバ側がLinux等でも応用が利きますので。 Windows固有の話はWindowsアプリにやらせるのが賢明かと。 |
|
投稿日時: 2008-07-08 15:12
わたなべ様、早急なご返信感謝しております。
おっしゃるとおり、ファイルバックアップ常駐ソフトにてフォルダーを同期することにより無事対応させることができました。 プログラムの対応ばかり考えて、フォルダの同期を取る方法は、思いつかなかったです。 どうもありがとうございました。 |
1