3

Windows システムで Java WebApp を開発しました。これは、エクスポート ボタンを使用して結果セットを Excel 用の csv ファイルにエクスポートする分析プログラムです。

事実:エクスポートするファイルのパスをハードコーディングしました:

public String button1_action() {
   GenerateCSV  generateCSV = new GenerateCSV();

   Date zeitstempel = new Date();
   SimpleDateFormat simpleDateFormat = new SimpleDateFormat ("_dd.MM.yyyy_HH.mm.ss");

   generateCSV.generateCsvFile("h:/VR-Analyse-Tool_Excel Output" +simpleDateFormat.format(zeitstempel) +".csv", getSessionBean1().getExistingRightsList()); 

   return null;
}

私のローカルシステムでは問題なく動作します。

.warこれで、Linux システムの tomcat6 にファイルをデプロイしました。現在、このパスは機能していません。誰か助けてくれませんか?これを解決する方法がわかりません。

このプログラムは、サーバー上の個人用ドライブ/スペース/量にcsvファイルをエクスポートできる必要がある私の会社の他のユーザー向けです。このサーバーには、ドライブ文字 (h:) を持つ独自のドライブがあります。

4

3 に答える 3

0

それ以外の

h:/VR-Analyse-Tool_Excel Output

使用する

/home/VR-Analyse-Tool_Excel Output

を作成する

h:/home

ローカル マシンのディレクトリであり、両方の環境で動作するはずです。

于 2013-03-05T08:46:10.820 に答える
0

デプロイ時に web.xml にファイル パスを追加します。Windows file(h:your_filepath) , Unix (home/your_filepath)

web.xml

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app>
  <context-param>
    <param-name>downloadFilePath</param-name>
    <param-value>h:your_filepath</param-value>
  </context-param>
.
.
.
.
</web-app>

Java コード

public String button1_action() {
   GenerateCSV  generateCSV = new GenerateCSV();
   String filepath =  getServletContext().getInitParameter("downloadFilePath");
   Date zeitstempel = new Date();
   SimpleDateFormat simpleDateFormat = new SimpleDateFormat ("_dd.MM.yyyy_HH.mm.ss");

   generateCSV.generateCsvFile(filepath  +simpleDateFormat.format(zeitstempel) +".csv", getSessionBean1().getExistingRightsList()); 

   return null;
}
于 2013-03-05T08:54:02.080 に答える
0

相対パスでファイルを書き込むことは強くお勧めしません。これは、システム (OS) によって解釈が異なるためです。最後に必要なのは、ファイルが作成された場所をデバッグすることです。

次のアプローチのいずれかから選択できます

1) .properties ファイルで値を宣言し、Java プログラムから値を読み取ります。このように環境が変わっても、プロパティ ファイルを編集するだけで済みます。だから再コンパイルが必要

2)または、この Db テーブルを使用して使用することもできます。

3) Web.xml で Application コンテキスト変数を宣言して使用することができます

 <?xml version="1.0" encoding="ISO-8859-1"?>
 <web-app>
   <context-param>
     <param-name>csv_file_path</param-name>
     <param-value>h:/your_file_path</param-value>
   </context-param>
 .
 .
 .
 .
</web-app>
于 2013-03-05T09:05:53.180 に答える