исключение при разборе данных многочастной формы - PullRequest
0 голосов
/ 27 февраля 2009

Я пытаюсь обработать загрузку файла и использую Класс com.oreilly.servlet.multipart.MultipartParser для анализа опубликованного данные (в cos.jar). Однако, когда я вызываю конструктор для MultipartParser, я получаю это Исключение:

java.io.IOException: Corrupt form data: premature ending
    at com.oreilly.servlet.multipart.MultipartParser.<init>(MultipartParser.java:166)
    at com.oreilly.servlet.multipart.MultipartParser.<init>(MultipartParser.java:94)

Кто-нибудь видел это раньше? Из того, что я прочитал, это означает, что данные закончились прежде, чем он нашел границу, которую искал. Как я могу исправить это?

Я использую cos.jar версии 1.0.

Спасибо!

Ответы [ 2 ]

1 голос
/ 27 февраля 2009

Итак, проблема была вызвана тем, что я дважды вызвал конструктор MultipartParser случайно. Не удалось во второй раз, так как запрос уже был обработан.

1 голос
/ 27 февраля 2009

http://www.servlets.com/cos/faq.html

Это указывает на проблему парсинг запроса POST, представленного клиент. Там может быть много причин за проблему:

  • Клиент нажал кнопку СТОП (на самом деле это не проблема, но это вызывает преждевременное окончание)
  • Ошибка в веб-форме
  • Ошибка в сервлете
  • Ошибка на веб-сервере
  • Ошибка в браузере
  • Ошибка в самой библиотеке com.oreilly.servlet

История показала, что веб-сервер самая частая причина проблем вероятно, потому что есть так много разные серверы и несколько поставщиков Похоже, чтобы проверить их бинарную загрузку возможность.

Во-первых, убедитесь, что ваш клиент не нажав кнопку СТОП. Затем проверьте если ваша проблема уже опубликована "Ошибки сервлетов, которые вам нужно знать о "ресурс на этом сайте. Если это не очень хорошо известно, то вы получите в числе первых узнавших об этом! А также Вы можете поделиться своим открытием с нами здесь! * * 1023

Во-вторых, посмотрите, работает ли загрузка, используя предоставленная форма upload.html и Класс DemoRequestUploadServlet.java. Некоторые люди нашли ошибки в своих форма, которая вызвала проблемы. тестирование эта комбинация увидит, если это дело. Найден один пользователь, герцог Такле это исключение было вызвано редирект: Я испытывал то же самое «преждевременное окончание», как Альберт Смит. Я обнаружил, что проблема был изолирован от И.Е. 5.0. приложение, которое беспокоило меня, делало редирект после строительства MultipartRequest. Это выглядит так строительство прошло хорошо кроме как на И.Е. 5.0 браузер попытался сделать запрос еще раз, и к этому времени ServletInputStream был пуст. Я изменил приложение просто напишите нужный ответ вместо перенаправление. Эта проблема наблюдалась и исправлено, как описано в Tomcat 4.0 и Weblogic 6.1. Другие пользователи имеют нашел ошибки в их сервлете обработки где они вызывают request.getParameter () вместо multipartRequest.getParameter () и некоторые серверы ложно читают ввод поток, когда их getParameter () называется причиной "неожиданного конца часть».

...