2011-03-10 3 views
0

В настоящее время мы испытываем некоторые проблемы с записью/кодированием файлов, которые мы не можем воспроизвести. На самом деле есть две проблемы, которые могут иметь одну и ту же причину:Нежелательные символы в начале или конце файла

1) У нас есть приложение (или несколько экземпляров одного и того же приложения), которое использует шаблон скорости для создания файла css по запросу пользователя. Однако в некоторых случаях это приложение (работающее на том же сервере с использованием тех же библиотек в тех же версиях) добавляет некоторые строгие символы в строку CSS, которая записывается в файл (это не символ порядка байтов UTF-8).

2) Еще одно приложение недавно предоставило Javascript-файл (расположенный в EAR) с добавленными нежелательными символами. В большинстве случаев одно и то же приложение правильно доставляет этот файл Javascript, и мы пока не можем воспроизвести это поведение. Предполагалось, что файл, который записывается в временную папку сервера, каким-то образом поврежден.

Оба приложения имеют общий факт, что ненужные символы добавляются в файл, поэтому он может быть такой же или подобной причиной.

Однако, как я уже говорил, мы не можем воспроизвести это поведение на наших тестовых или машинах разработки, и мы не знаем, что может быть причиной (мы уже проверили кодировку файла, которая установлена ​​в UTF- 8).

Вот еще некоторая информация о системе:

ОС: Debian GNU/Linux 5.0.4 (Ленни) JBoss: 4.2.3.GA Java: JDK 1.5.0_17 SUn-b04

Любая идея, что может происходить или что мы можем искать?

Заранее спасибо.

Edit:

Часть кода для задачи 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) не может быть проблема с нашей Java кода, так как все, что мы делаем это связать Javascript в JSP ,

ответ

1

Я хотел бы узнать, что ваш код читает/записывает файл с использованием байтового буфера и не учитывает значение, возвращаемое вызовами read(byte[]). (Это звучит довольно основательно, но я недавно увидел вопрос SO, где это была основная проблема.)

+0

+1 для того, чтобы снова проверить вход для проблемы 1. – Thomas

0

Я думаю, что я нашел причину проблемы нет. 1: Шаблон скорости содержит эти символы. Однако мы уже проверили это, и мысли там не были. Но errare humanum est. :)

Проблема №. 2 все еще существует, и это еще менее воспроизводимо.

Смежные вопросы