Internet Explorer пытается открыть Excel на сервере Jboss и терпит неудачу - PullRequest
0 голосов
/ 06 февраля 2012

У меня есть приложение JSF2, связывающее со статическими файлами Excel в файловой системе сервера.Ссылка представляет собой простой HTML-код, подобный следующему:

<a href="#{bean.getExcelLink(auction)}">Excel File</a>

Это хорошо работает с Chrome и Firefox, а также с IE, когда приложение запускается в Tomcat на моем локальном компьютере с Windows 7.Но в промежуточной среде, которая является Linux с Jboss AS 7.0.1 Final, IE пытается открыть файл Excel в своем собственном окне и выдает кучу мусорных символов.

Опять же, проблема только в IE, когда приложение работает в Linux с Jboss AS.

Есть идеи о том, что происходит и как ее решить?

1 Ответ

1 голос
/ 06 февраля 2012

Видимо, тип содержимого ответа неправильный. Учитывая тот факт, что в Linux происходит сбой, но в Windows это происходит успешно, это может означать только то, что для определения типа контента используется привязка MIME-типа для конкретной платформы вместо привязки MIME-типа для webapp / server (конечно, для Linux-машины). не установлен MS Office, поэтому он плохо осведомлен о типе файлов MIME .xls или .xlsx). Это, в свою очередь, может означать только то, что вы не напрямую ссылаетесь на него, а используете универсальный сервлет для потоковой передачи файла.

Если это правда, тогда вы должны использовать ServletContext#getMimeType() для определения типа контента на основе расширения файла вместо, возможно, URLConnection#guessContentTypeFromName(), который использует платформу специфическое отображение типа пантомимы. Сервер имеет в своем собственном web.xml предопределенный список всех типов пантомимы по умолчанию в виде <mime-mapping> записей, которые вы можете переопределить / расширить в собственном web.xml веб-приложения.

...