|
|
|
как перехватить FileSizeLimitExceededException
|
|||
|---|---|---|---|
|
#18+
Как перехватить org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededException в java коде? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2014, 20:56 |
|
||
|
как перехватить FileSizeLimitExceededException
|
|||
|---|---|---|---|
|
#18+
FileUploadBase.FileSizeLimitExceededException ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2014, 21:12 |
|
||
|
как перехватить FileSizeLimitExceededException
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, Код: xml 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2014, 21:18 |
|
||
|
как перехватить FileSizeLimitExceededException
|
|||
|---|---|---|---|
|
#18+
Я, как бы, несколько другой разделитель использовал. Американский рубль возникает из-за того, что внутренние классы эмулируются компилятором. На что, собственно, и указывает сообщение об ошибке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2014, 21:26 |
|
||
|
как перехватить FileSizeLimitExceededException
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, да, уже нашел этот класс и обернул проблемную строку, но все-равно не ловит! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2014, 21:29 |
|
||
|
как перехватить FileSizeLimitExceededException
|
|||
|---|---|---|---|
|
#18+
авторuploadFilePath = D:\Java\spring_workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\new_prog_2\uploads java.lang.IllegalStateException: org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededException: The field fileName exceeds its maximum permitted size of 3145728 bytes. at org.apache.catalina.connector.Request.parseParts(Request.java:2804) at org.apache.catalina.connector.Request.getParts(Request.java:2655) at org.apache.catalina.connector.RequestFacade.getParts(RequestFacade.java:1075) at control.FileUploadServlet.doPost(FileUploadServlet.java:44) at javax.servlet.http.HttpServlet.service(HttpServlet.java:646) at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:744) Caused by: org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededException: The field fileName exceeds its maximum permitted size of 3145728 bytes. at org.apache.tomcat.util.http.fileupload.FileUploadBase$FileItemIteratorImpl$FileItemStreamImpl$1.raiseError(FileUploadBase.java:637) at org.apache.tomcat.util.http.fileupload.util.LimitedInputStream.checkLimit(LimitedInputStream.java:76) at org.apache.tomcat.util.http.fileupload.util.LimitedInputStream.read(LimitedInputStream.java:135) at java.io.FilterInputStream.read(FilterInputStream.java:107) at org.apache.tomcat.util.http.fileupload.util.Streams.copy(Streams.java:99) at org.apache.tomcat.util.http.fileupload.util.Streams.copy(Streams.java:68) at org.apache.tomcat.util.http.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:296) at org.apache.catalina.connector.Request.parseParts(Request.java:2737) ... 25 more ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2014, 21:30 |
|
||
|
как перехватить FileSizeLimitExceededException
|
|||
|---|---|---|---|
|
#18+
Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2014, 21:33 |
|
||
|
как перехватить FileSizeLimitExceededException
|
|||
|---|---|---|---|
|
#18+
Трасса стека английским по чёрному пишет "IllegalStateException". Вот его и надо перехватывать. Далее, если getCause() вернул непустое значение - можете узнавать фактическую причину исключения. Вполне стандартная практика - обернуть одно исключение другим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2014, 21:43 |
|
||
|
как перехватить FileSizeLimitExceededException
|
|||
|---|---|---|---|
|
#18+
все-таки FileSizeLimitExceededException, не перехватывает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2014, 21:43 |
|
||
|
как перехватить FileSizeLimitExceededException
|
|||
|---|---|---|---|
|
#18+
Если: Код: sql 1. 2. то бессмысленно ловить вложенное исключение. Должно быть: Код: sql 1. или, если хочется заглянуть во внутрь: Код: sql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2014, 21:51 |
|
||
|
как перехватить FileSizeLimitExceededException
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, не совсем понял вас, все перехватывает, но потом уже форвард не работает, так ошибка была на уровне контейнера. как оттуда направить на страницу ошибок, или лучше на нужный экшин? перехватывает: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2014, 22:09 |
|
||
|
как перехватить FileSizeLimitExceededException
|
|||
|---|---|---|---|
|
#18+
В Servlet API ошибка это или HttpServletResponse.setStatus() или HttpServletResponse.sendError() . Поэтому, перехватив исключение, вы его протоколируете, если оно вам нужно, и устанавливаете статус HTTP-отклика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2014, 22:32 |
|
||
|
как перехватить FileSizeLimitExceededException
|
|||
|---|---|---|---|
|
#18+
после того как исключение перехвачено, я пробовал применять эти методы к респонсу, однако браузер выдает все то же "Во время загрузки страницы соединение с сервером было сброшено." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2014, 22:46 |
|
||
|
как перехватить FileSizeLimitExceededException
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2014, 22:56 |
|
||
|
как перехватить FileSizeLimitExceededException
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorovперехватив исключение, вы его протоколируете, если оно вам нужно, и устанавливаете статус HTTP-откликаоно и не получиться может потому что всё закроется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2014, 22:56 |
|
||
|
как перехватить FileSizeLimitExceededException
|
|||
|---|---|---|---|
|
#18+
grasoff.net, а в чем тогда прикол от maxFileSize в @MultipartConfig, если потом ничего не сделаешь? ведь именно maxFileSize приводит к возникновению этого исключения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2014, 23:23 |
|
||
|
как перехватить FileSizeLimitExceededException
|
|||
|---|---|---|---|
|
#18+
rema174а в чем тогда прикол от maxFileSize в @MultipartConfig, если потом ничего не сделаешь? ведь именно maxFileSize приводит к возникновению этого исключения.исключение возникло? сервер не принял? это и надо было? если на все вопросы ответ "да", значит, всё хорошо :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2014, 23:26 |
|
||
|
как перехватить FileSizeLimitExceededException
|
|||
|---|---|---|---|
|
#18+
grasoff.net, ну, не совсем все хорошо :) как дальше разрулить, т.е. сделать вызов error page на сайте? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2014, 23:30 |
|
||
|
как перехватить FileSizeLimitExceededException
|
|||
|---|---|---|---|
|
#18+
grasoff.netоно и не получиться может потому что всё закроетсяВ зависимости от чувства прекрасного, ошибки на HttpServletResponse можно или обработать самому или предоставить обработку контейнеру. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2014, 03:35 |
|
||
|
как перехватить FileSizeLimitExceededException
|
|||
|---|---|---|---|
|
#18+
rema174не совсем понял вас, все перехватывает, но потом уже форвард не работает, так ошибка была на уровне контейнера. как оттуда направить на страницу ошибок, или лучше на нужный экшин? перехватывает: Код: java 1. 2. 3. 4. Если вы кидаете перехваченное или собственное исключение, то инициатива переходит к сервлет-контейнеру, который закроет входящее соединение и запротоколирует ошибку. Поэтому повторю: перехватив исключение, протоколируем его, если это требуется и либо просто устанавливаем статус ошибки (setStatus) или отправляем страничку с ошибкой (sendError). В вашем случае протоколировать превышение размера надо на отладочном уровне, т.к. "большой осётр" - ни разу не ошибка. Как-то так: Код: sql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2014, 04:07 |
|
||
|
как перехватить FileSizeLimitExceededException
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovКак-то так: Код: sql 1. 2. 3. 4. 5. хорошо, а куда произойдет return? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2014, 10:48 |
|
||
|
как перехватить FileSizeLimitExceededException
|
|||
|---|---|---|---|
|
#18+
rema174хорошо, а куда произойдет return?А куда он происходит, когда "заканчивается" метод service() (doPost()/e.t.c)? Когда установлен статус/отправлена ошибка, делать с откликом что-то ещё - нельзя. Поэтому return - самый короткий способ досрочно завершить исполнение. Если вам нужна какая-то другая обработка - сами думайте. У меня фантазия бедная ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2014, 11:44 |
|
||
|
как перехватить FileSizeLimitExceededException
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorovrema174хорошо, а куда произойдет return?досрочно завершить исполнение это вообщем то, что в данной ситуации и задумано, хотелось сделать это красивее, чем просто отображать в браузере, что соединение было сброшено. и на том спасибо - ситуация понятна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2014, 11:51 |
|
||
|
как перехватить FileSizeLimitExceededException
|
|||
|---|---|---|---|
|
#18+
rema174, у меня точно так-же, есть ошибка (системная), если например, оракл в ауте. Которую я вывожу как HTTP.Error (Basil A. Sidorov ) Тут уже ничего поделать с ней нельзя, а код выбранной ошибки как раз много скажет по телефону тех-поддержки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2014, 12:06 |
|
||
|
как перехватить FileSizeLimitExceededException
|
|||
|---|---|---|---|
|
#18+
rema174это вообщем то, что в данной ситуации и задумано, хотелось сделать это красивее, чем просто отображать в браузере, что соединение было сброшено.Когда пользователь прислал больше данных, чем мы желаем обработать, то: 1. Если установить статус отклика и сделать возврат, то инициатива переходит к контейнеру. Контейнер примет все меры к тому, чтобы корректно остановить отправку данных клиентом. В браузере появится простенькое сообщение, "разукрашенное" в меру желания разработчиков браузера; 2. Если сделать sendError(код) и возврат, то всё будет почти также, но контейнер отправит стандартную или настроенную страничку об ошибке. Что должно решить проблему "как объяснить пользователю, что он слишком много хочет". В обоих случаях код ошибки будет записан в журнале обращений к сайту (access log) и будет точно известно, что именно происходило. Если делать перенаправления sendRedirect() или forward(), то ситуация кардинально другая: 3XX-коды - не ошибка и понять, что пользователь "слишком много хотел" можно будет только очень косвенным способом. Кроме того, в самой форме можно указать максимальный размер поля. Предположительно, это будет ограничением, которое может "проверить" и сам браузер. Ещё до отправки данных на сервер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2014, 12:27 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38809258&tid=2126246]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
388ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 231ms |
| total: | 695ms |

| 0 / 0 |
