Весенняя загрузка java.net.SocketTimeoutException при загрузке больших файлов - PullRequest
0 голосов
/ 08 октября 2018

Я могу загружать файлы на сервер в своем приложении, я использую angular во внешнем интерфейсе, я использую эту библиотеку для загрузки файлов ng2-file-upload , и я использую загрузку Springв бэкэнде на данный момент он отлично работает для файлов до 1 ГБ, однако для еще больших файлов я получил это исключение при загрузке:

Caused by: java.io.IOException: org.apache.tomcat.util.http.fileupload.FileUploadBase$IOFileUploadException: Processing of multipart/form-data request failed. null
    at org.apache.catalina.connector.Request.parseParts(Request.java:2932) ~[catalina.jar:8.5.31]
    at org.apache.catalina.connector.Request.parseParameters(Request.java:3232) ~[catalina.jar:8.5.31]
    at org.apache.catalina.connector.Request.getParameter(Request.java:1137) ~[catalina.jar:8.5.31]
    at org.apache.catalina.connector.RequestFacade.getParameter(RequestFacade.java:381) ~[catalina.jar:8.5.31]
    at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:75) ~[spring-web-4.3.14.RELEASE.jar:4.3.14.RELEASE]
    ... 35 more
Caused by: org.apache.tomcat.util.http.fileupload.FileUploadBase$IOFileUploadException: Processing of multipart/form-data request failed. null
    at org.apache.tomcat.util.http.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:297) ~[tomcat-coyote.jar:8.5.31]
    at org.apache.catalina.connector.Request.parseParts(Request.java:2884) ~[catalina.jar:8.5.31]
    at org.apache.catalina.connector.Request.parseParameters(Request.java:3232) ~[catalina.jar:8.5.31]
    at org.apache.catalina.connector.Request.getParameter(Request.java:1137) ~[catalina.jar:8.5.31]
    at org.apache.catalina.connector.RequestFacade.getParameter(RequestFacade.java:381) ~[catalina.jar:8.5.31]
    at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:75) ~[spring-web-4.3.14.RELEASE.jar:4.3.14.RELEASE]
    ... 35 more
Caused by: java.net.SocketTimeoutException
    at org.apache.tomcat.util.net.NioBlockingSelector.read(NioBlockingSelector.java:201) ~[tomcat-coyote.jar:8.5.31]
    at org.apache.tomcat.util.net.NioSelectorPool.read(NioSelectorPool.java:235) ~[tomcat-coyote.jar:8.5.31]
    at org.apache.tomcat.util.net.NioSelectorPool.read(NioSelectorPool.java:216) ~[tomcat-coyote.jar:8.5.31]
    at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.fillReadBuffer(NioEndpoint.java:1250) ~[tomcat-coyote.jar:8.5.31]
    at org.apache.tomcat.util.net.NioEnd

point$NioSocketWrapper.read(NioEndpoint.java:1193) ~[tomcat-coyote.jar:8.5.31]

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

1 Ответ

0 голосов
/ 09 октября 2018

Чтобы устранить эту проблему, вы можете сделать следующее:
1. Добавить свойство server.connection-timeout=-1 в application.properties и проверить, появляется ли ошибка (-1 означает бесконечный тайм-аут)
2. Попробуйте развернуть войну в автономном режиме.tomcat (насколько я знаю, иногда он ведет себя по-разному, что встроено в springboot)

...