Почему моя конечная точка Springboot Springdoc /swagger-ui.html возвращает 404, когда я включаю большие файлы ресурсов и создаю / запускаю файл JAR?

Почему SpringDoc swagger-ui.html возвращает страницу ошибки 404 / Whitelabel, когда присутствуют большие файлы ресурсов (например, 7 файлов по ~380 МБ каждый)? Это происходит после создания и запуска файла JAR. Конечная точка отлично работает, когда проект запускается непосредственно из Intellij.

Мне удалось воспроизвести ошибку, используя демонстрационный репозиторий SpringDoc. Ожидаемое поведение при переходе в /swagger-ui.htmlпредназначена для загрузки страницы swagger-ui с отображением ресурсов книжного сервиса. Однако, когда вместо этого присутствуют большие файлы ресурсов, я получаю 404 с отображением журналов:

      19:30:49.012 [http-nio-8080-exec-2] INFO  o.s.web.servlet.DispatcherServlet - Completed initialization in 14 ms
19:30:49.023 [http-nio-8080-exec-2] TRACE o.s.web.servlet.DispatcherServlet - GET "/swagger-ui.html", parameters={}, headers={masked} in DispatcherServlet 'dispatcherServlet'
19:30:49.026 [http-nio-8080-exec-2] TRACE o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped to org.springdoc.webmvc.ui.SwaggerWelcomeWebMvc#redirectToUi(HttpServletRequest)
19:30:49.036 [http-nio-8080-exec-2] TRACE o.s.web.method.HandlerMethod - Arguments: [org.apache.catalina.connector.RequestFacade@5e68b13]
19:30:49.064 [http-nio-8080-exec-2] DEBUG o.s.w.s.m.m.a.HttpEntityMethodProcessor - Using 'application/json;q=0.8', given [text/html, application/xhtml+xml, image/avif, image/webp, image/apng, application/xml;q=0.9, application/signed-exchange;v=b3;q=0.9, */*;q=0.8] and supported [application/json, application/*+json, application/json, application/*+json]
19:30:49.064 [http-nio-8080-exec-2] DEBUG o.s.w.s.m.m.a.HttpEntityMethodProcessor - Nothing to write: null body
19:30:49.065 [http-nio-8080-exec-2] TRACE o.s.w.s.m.m.a.RequestMappingHandlerAdapter - Applying default cacheSeconds=-1
19:30:49.065 [http-nio-8080-exec-2] TRACE o.s.web.servlet.DispatcherServlet - No view rendering, null ModelAndView returned.
19:30:49.065 [http-nio-8080-exec-2] DEBUG o.s.web.servlet.DispatcherServlet - Completed 302 FOUND, headers={masked}
19:30:49.071 [http-nio-8080-exec-3] TRACE o.s.web.servlet.DispatcherServlet - GET "/swagger-ui/index.html?configUrl=/v3/api-docs/swagger-config", parameters={masked}, headers={masked} in DispatcherServlet 'dispatcherServlet'
19:30:49.073 [http-nio-8080-exec-3] TRACE o.s.w.s.h.SimpleUrlHandlerMapping - Matching patterns [/swagger-ui*/**, /**]
19:30:49.073 [http-nio-8080-exec-3] TRACE o.s.w.s.h.SimpleUrlHandlerMapping - Mapped to HandlerExecutionChain with [ResourceHttpRequestHandler [Classpath [META-INF/resources/webjars/]]] and 3 interceptors
19:30:49.074 [http-nio-8080-exec-3] DEBUG o.s.w.s.r.ResourceHttpRequestHandler - Resource not found
19:30:49.074 [http-nio-8080-exec-3] TRACE o.s.web.servlet.DispatcherServlet - No view rendering, null ModelAndView returned.
19:30:49.074 [http-nio-8080-exec-3] DEBUG o.s.web.servlet.DispatcherServlet - Completed 404 NOT_FOUND, headers={masked}

Воспроизводить

  1. Клонировать https://github.com/springdoc/springdoc-openapi-demos
  2. Создайте 7 больших файлов ресурсов: head -c 400000000 /dev/urandom > BigTestFile1.bin head -c 400000000 /dev/urandom > BigTestFile2.bin head -c 400000000 /dev/urandom > BigTestFile3.bin head -c 400000000 /dev/urandom > BigTestFile4.bin head -c 400000000 /dev/urandom > BigTestFile5.bin head -c 400000000 /dev/urandom > BigTestFile6.bin head -c 400000000 /dev/urandom > BigTestFile7.bin
  3. Создайте папку под названием LargeFiles в springdoc-openapi-book-service src / main / java / resources и поместите все 7 TestFiles в эту папку.
  4. Постройте банку mvn clean package
  5. Запустите банку java -jar ./target/springdoc-openapi-book-service-3.1.6-SNAPSHOT.jar
  6. Перейдите по адресу http:/0.0.0.0:8080 / swagger-ui.html.

Я работал над рядом API-интерфейсов - эта проблема, похоже, возникает только при наличии больших файлов ресурсов и только после создания / запуска файла JAR.

0 ответов

Другие вопросы по тегам