Приложение Seam с использованием tomcat и postgresql 9.0.3
Приложение позволяет пользователям загружать текстовые документы, которые сохраняются в БД как BLOB и определяются в бине как байтовый массив.
Эти текстовые документы имеютбыл загружен пользователями в формате xml.
Когда я использую этот код с Tomcat (5) в Windows, он работает просто отлично.При использовании с Tomcat (v. 6.0.24) на сервере Linux я получаю поведение, которое отображает содержимое в виде HEX-кода в загруженном файле ???
Сначала я подумал, что сервер отсутствуетнекоторые шрифты, файлы со шрифтами, которые определенно находятся на сервере, показывают то же самое поведение.Даже TXT-файлы делают то же самое.
Код для загрузки выглядит следующим образом:
byte[] wordDoc = createApptLetter();
HttpServletResponse response = (HttpServletResponse)FacesContext.getCurrentInstance().getExternalContext().getResponse();
response.setContentType("application/msword");
fileName = letter.getFileName();
response.addHeader("Content-disposition", "attachment; filename=\"" + fileName + "\"");
response.setContentLength(wordDoc.length);
OutputStream os = response.getOutputStream();
//log.error(response.getContentType());
os.write(wordDoc);
os.flush();
os.close();
facesContext.renderResponse();
facesContext.responseComplete();
edit: вот метод createApptLetter:
private byte[] createApptLetter() {
LetterTemplate template = appointmentHome.getInstance().getLetterTemplate();
Client client = appointmentHome.getInstance().getClientRegistration().getEligibilityCycle().getClient();
String sageClinic = appointmentHome.getInstance().getFacility().getName();
String apptDate = appointmentHome.getInstance().getAppointmentDateString();
String apptTime = appointmentHome.getInstance().getAppointmentTimeString();
String notes = appointmentHome.getInstance().getAppointmentNotes();
String longDateFormat = SageConstantsEnum.DateFormats.LONGDATEFORMAT.getDescription();
SimpleDateFormat df = new SimpleDateFormat(longDateFormat);
String today = df.format(new Date());
//StringBuilder sbTemplate = new StringBuilder(new String(template.getLetterTemplateText()));
String xmlTemplate = new String (template.getLetterTemplateText());
xmlTemplate = xmlTemplate.replace("letterDate", today);
xmlTemplate = xmlTemplate.replace("apptDate", apptDate);
xmlTemplate = xmlTemplate.replace("apptTime", apptTime);
xmlTemplate = xmlTemplate.replace("apptNotes", notes);
xmlTemplate = xmlTemplate.replace("sageClinic", sageClinic);
xmlTemplate = xmlTemplate.replace("clientName", client.getFullname());
xmlTemplate = xmlTemplate.replace("clientCity",client.getMailingAddress().getAddress().getCity());
xmlTemplate = xmlTemplate.replace("clientAddress", client.getMailingAddress().getAddress().getStreetaddress());
xmlTemplate = xmlTemplate.replace("clientState",client.getMailingAddress().getAddress().getState());
xmlTemplate = xmlTemplate.replace("clientZip", client.getMailingAddress().getAddress().getZipcode());
return xmlTemplate.getBytes();
}