2011-03-10 14 views
0

現在、私たちは再現できないファイル書き込み/エンコーディングの問題を経験しています。 実際には、同じ原因の可能性がある2つの問題があります。ファイルの先頭または末尾のジャンク文字

1)ベロシティテンプレートを使用してユーザーの要求に応じてアプリケーションを作成するアプリケーションがあります。しかし、そのアプリケーションのいくつかのインスタンスでは(同じサーバーで実行され、同じバージョンの同じライブラリを使用して)、ファイルに書き込まれるCSS文字列にいくつかのstange文字を付加します(UTF-8バイトの順序マークではありません)。

2)もう1つのアプリケーションでは、JARファイルが追加されたJARファイル(EARにあります)が配信されました。ほとんどの場合、同じアプリケーションがJavascriptファイルを正しく配信しており、まだその動作を再現できませんでした。サーバーの一時フォルダに書き込まれたファイルが何らかの形で破損している可能性があります。

どちらのアプリケーションも、同じまたは類似の原因になる可能性があるため、迷惑な文字がファイルに追加されるという事実が共通しています。

しかし、前にも述べたように、私たちはテストマシンや開発マシンでその動作を再現することができず、何が原因か分かりません(UTF- 8)。

OS:DebianのGNU/Linuxの5.0.4(lennyの) のJBoss:4.2.3.GA のJava:日JDK 1.5.0_17-B04

はここで、システム上のいくつかのより多くの情報です何が起こっているのか、私たちが探すことができるのか?

ありがとうございます。

編集:問題1のコードの

パート)

... 
FileWriter fw; 
try 
{ 
    String path = tConfigProperties.getProperty(VELOCITYPATHPARAM); 
    fw = new FileWriter(path + VELOCITYFILEPARM); 
    fw.write(sw.toString());//sw is a StringWriter passed to velocity for template processing 
    fw.close(); 
} 
catch(IOException e) 
{ 
    //handle exception and display error message 
} 

問題2)私たちは、すべてのJSPでJavascriptをリンクされているので、私たちのJavaコードに問題があることはできません。

答えて

1

あなたのコードは、バイトバッファを使用してファイルを読み書きしていて、read(byte[])呼び出しによって返された値を考慮していない可能性があります。 (それはかなり基本的に聞こえるが、私は最近、これがどこに根本的な問題であったのかという問題を見た)。

+0

問題1の入力をもう一度チェックするための+1。 – Thomas

0

問題の原因は見つかりませんでした。 1:速度テンプレートにもこれらの文字が含まれています。しかし、私たちはすでにこれをチェックし、そこにはないと考えました。しかし、errare humanum est。 :)

問題はありません。 2が依然として存在し、これは再現性がさらに低くなります。

関連する問題