Как использовать кодирование multipart / form-data в приложении, работающем на GlassFish 3.1.1 - PullRequest
1 голос
/ 31 января 2012

У меня есть приложение JSF 2.0, работающее под GlassFish 3.1.1, и я хочу использовать новый компонент FileUpload в PrimeFaces 3.0.1, который требует, чтобы данные формы кодировались как multipart/form-data, так какin:

<h:form id="quoteform" enctype="multipart/form-data">

Однако, как только я добавляю вышеупомянутый атрибут enctype к моей форме, он больше не работает - методы bean-компонентов, связанные с моими кнопками отправки и отмены, никогда не запускаются.

Я нашел ссылку на проблему с Mojarra (я думаю, это часть GlassFish) и кодировкой multipart / form-data, но ей уже почти два года - конечно, к настоящему времени, я думаю, она уже решена.Есть ли что-то еще, что мне нужно сделать, чтобы использовать этот тип кодировки под GlassFish, или что-то, что нужно обновить?И если осталась известная проблема, то кто виноват?

1 Ответ

0 голосов
/ 27 апреля 2012

В текущей версии Glassfish 3.1.2 b23 существует регрессия, которая была введена в качестве исправления для некоторой предыдущей ошибки, поэтому я думаю, что она все еще действительна.

Подробная информация о вероятной причине приведена ниже.и в билете на выпуск Glassfish http://java.net/jira/browse/GLASSFISH-18444, но это можно обобщить с помощью этого другого комментария пользователя gf 3.1.2 «В настоящее время я испытываю это с CMS Magnolia (http://www.magnolia -cms.com /), где каждыйформа перестала работать в glassfish 3.1.2 со следующим исключением ... "

Я локально развернул версию 3.1 из glassfish и проверил, что проблема readLine () отсутствует с формой multipart, поэтому предлагаювозврат к заархивированной версии glassfish версии 3.1 вместо 3.1.2 b23.

http://java.net/jira/browse/GLASSFISH-18444
"В glassfish 3.1 это используется для обработки и распечатки данных формы (содержимое InputStream все еще может бытьиспользуется после вызова getParameter ()). Это изменилось в glassfish 3.1.2, вероятно, из-за изменений для GLASSFISH-16740.

Эти изменения приведут косновные проблемы в веб-приложениях, которые используют составные форм-данные, но еще не используют метод getParts () для извлечения данных, а какой-то собственный метод.Любой вызов getParameter () до синтаксического анализа файлов приведет к сбою синтаксического анализа составных данных формы.В настоящее время я испытываю это с Magnolia CMS (http://www.magnolia -cms.com /), где каждая форма перестала работать в glassfish 3.1.2 со следующим исключением: «

кажется, что проблема связанана эти открытые проблемы на развернутой GLASSFISH 3.1.2;

http://java.net/jira/browse/GLASSFISH-18453
http://java.net/jira/browse/GLASSFISH-18444
http://java.net/jira/browse/GLASSFISH-16740

"Несовместимые критические изменения для getParameter ()/ getPart () "Влияет на версию / s: 3.1.2_b23

Так что это влияет на любые формы на сайте, которые имеют многокомпонентные компоненты для загрузки файлов. Я могу локально повторить эту проблему на glassfish 3.1.2_b23.

...