WebLogic 10gR3 - UnsupportedEncodingException, анализирующий заголовок Content-Type для multipart / form-data - PullRequest
5 голосов
/ 17 февраля 2012

Мое приложение получает многокомпонентный контент через HTTP POST, в WebLogic 10gR3.Всякий раз, когда клиенты указывают атрибут charset перед другими атрибутами в заголовке Content-Type (например, Content-Type: multipart/form-data; charset=utf-8; boundary=a_random_boundary), WebLogic выдает следующее исключение (перехвачено в журнале моего управляемого сервера):

Неподдерживаемая кодировка: указано "utf-8; border = a_random_boundary".
java.io.UnsupportedEncodingException: Неподдерживаемая кодировка utf-8;border = a_random_boundary
по адресу weblogic.servlet.internal.ServletRequestImpl.setCharacterEncoding (ServletRequestImpl.java:428)
по адресу weblogic.servlet.internal.ServletRequestImpl.initRequest_inlet_web_1:1.internal.ServletRequestImpl.getCharacterEncoding (ServletRequestImpl.java:451)
в javax.servlet.ServletRequestWrapper.getCharacterEncoding (ServletRequestWrapper.java:115) * 1013.

Просто для информации, я выполняю getCharacterEncoding() вызов экземпляра HttpServletRequest в строке 100.

Однако, если клиенты указывают кодировку в конце заголовка (например, Content)-Тип: multipart / form-data; border = a_random_boundary; charset = utf-8), приложение и WebLogic работают изящно.

Согласно RFC2045 , порядок параметров несущественный:

Поле заголовка Content-Type определяет характер данных в теле объекта путемпредоставление идентификаторов типов и подтипов мультимедиа и предоставление вспомогательной информации, которая может потребоваться для определенных типов мультимедиа.После имени типа носителя и подтипа оставшаяся часть поля заголовка представляет собой просто набор параметров, указанных в нотации атрибут = значение. Порядок параметров не имеет значения .

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

Я предполагаю, что это ошибка в WebLogic, но я подумал, что нужно поискать некоторое понимание, прежде чем обращаться в службу поддержки и / или делать обходной путь.

Спасибо за любое понимание этой проблемы.

...