Ненужные символы в начале или конце файла - PullRequest
0 голосов
/ 10 марта 2011

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

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

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

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

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

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

ОС: Debian GNU / Linux 5.0.4 (lenny) JBoss: 4.2.3.GA Java: SUn 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) не может быть проблемой с нашим Java-кодом, поскольку все, что мы делаем, это связываем Javascript в JSP.

Ответы [ 2 ]

1 голос
/ 10 марта 2011

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

0 голосов
/ 10 марта 2011

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...