Ошибка при попытке запустить Hello World в Vaadin 14 при использовании прокси-репозиториев

введите здесь описание изображенияЯ скачал проект с сайта start.vaadin.com. Потом сделал mvn install, все заработало.

Когда я запускаю mvn spring-boot:run, он выдает ошибку при попытке скомпилировать внешний интерфейс: com.vaadin.flow.server.BootstrapException: невозможно прочитать файл статистики веб-пакета.

Я работаю не с Maven Central, а с локальным репозиторием в моем университете. Мой ПК не имеет доступа к Интернету, только к репозиторию Nexus моего университета: http://nexus.prod.uci.cu/repository/maven-all/. В этом репозитории есть службы maven и node (т.е. npm). Однако, как вы могли видеть, проблем с зависимостями нет. Установка mvn работала правильно. Я отключил брандмауэр. Однако я предполагаю, что проблема связана с установкой npm, которую делает Vaadin при попытке скомпилировать интерфейс. Возможно, мой компьютер пытается использовать репозиторий Node из Интернета, а не репозиторий моего университета, и в этом случае он не может, поскольку у него нет доступа к Интернету. Я настроил свой npm для использования репозитория моего университета, но я продолжаю получать эту ошибку.

Вот вывод браузера после трехминутного ожидания:

Whitelabel Error Page

This application has no explicit mapping for /error, so you are seeing this as a fallback.
Mon Apr 26 17:55:55 GMT-05:00 2021
There was an unexpected error (type=Internal Server Error, status=500).
com.vaadin.flow.server.BootstrapException: Unable to read webpack stats file.
com.vaadin.flow.server.ServiceException: com.vaadin.flow.server.BootstrapException: Unable to read webpack stats file.
    at com.vaadin.flow.server.VaadinService.handleExceptionDuringRequest(VaadinService.java:1596)
    at com.vaadin.flow.server.VaadinService.handleRequest(VaadinService.java:1559)
    at com.vaadin.flow.server.VaadinServlet.service(VaadinServlet.java:247)
    at com.vaadin.flow.spring.SpringServlet.service(SpringServlet.java:111)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:710)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:457)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:352)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)
    at org.springframework.web.servlet.mvc.ServletForwardingController.handleRequestInternal(ServletForwardingController.java:141)
    at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:177)
    at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:52)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1060)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:962)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:626)
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
    at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
    at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1707)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1135)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.base/java.lang.Thread.run(Thread.java:844)
Caused by: com.vaadin.flow.server.BootstrapException: Unable to read webpack stats file.
    at com.vaadin.flow.server.BootstrapHandler$BootstrapPageBuilder.setupFrameworkLibraries(BootstrapHandler.java:894)
    at com.vaadin.flow.server.BootstrapHandler$BootstrapPageBuilder.setupDocumentHead(BootstrapHandler.java:771)
    at com.vaadin.flow.server.BootstrapHandler$BootstrapPageBuilder.getBootstrapPage(BootstrapHandler.java:540)
    at com.vaadin.flow.server.BootstrapHandler.synchronizedHandleRequest(BootstrapHandler.java:481)
    at com.vaadin.flow.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40)
    at com.vaadin.flow.server.VaadinService.handleRequest(VaadinService.java:1547)
    ... 52 more
Caused by: java.net.ConnectException: Connection refused: connect
    at java.base/java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
    at java.base/java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
    at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:400)
    at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:243)
    at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:225)
    at java.base/java.net.PlainSocketImpl.connect(PlainSocketImpl.java:148)
    at java.base/java.net.Socket.connect(Socket.java:591)
    at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:177)
    at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:474)
    at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:569)
    at java.base/sun.net.www.http.HttpClient.<init>(HttpClient.java:242)
    at java.base/sun.net.www.http.HttpClient.New(HttpClient.java:341)
    at java.base/sun.net.www.http.HttpClient.New(HttpClient.java:362)
    at java.base/sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1242)
    at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1181)
    at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1075)
    at java.base/sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:1009)
    at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1581)
    at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1509)
    at java.base/java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:527)
    at com.vaadin.flow.server.frontend.FrontendUtils.getStatsAssetsByChunkName(FrontendUtils.java:566)
    at com.vaadin.flow.server.BootstrapHandler$BootstrapPageBuilder.appendNpmBundle(BootstrapHandler.java:910)
    at com.vaadin.flow.server.BootstrapHandler$BootstrapPageBuilder.setupFrameworkLibraries(BootstrapHandler.java:892)
    ... 57 more

pom.xml такой же, как и файл, сгенерированный с сайта Vaadin. Я уже писал на странице Vaadin.

Я комментирую что-то любопытное, что происходит со мной с Hello World в Vaadin. Когда я создаю проект из архетипа maven, например:

"mvn -B archetype:generate -DarchetypeGroupId=com.vaadin -DarchetypeArtifactId=vaadin-archetype-application -DarchetypeVersion=LATEST -DgroupId=org.test -DartifactId=webapp -Dversion=1.0-SNAPSHOT"

Как объяснено в https://vaadin.com/learn/tutorials/import-maven-project-eclipse

Это не работает для меня. Даже в рабочем режиме: mvn jetty:run -Pproduction. Браузер запускается и не выдает ошибку, но не показывает то, что должен показать Hello World. Он показывает страницу, информирующую you are offline", and explaining that "my app needs internet connection to work. You do not seem to have access to the server right now. Check your internet conecction and try reloading the page to use the application. Прикреплено изображение моего экрана с запущенным приложением в браузере.

Почему это происходит с причалом, а не с весенней загрузкой?


person Manuel    schedule 26.04.2021    source источник
comment
Похоже, основной причиной является Connection refused: connect. Есть ли шанс, что у вас есть брандмауэр или что-то еще, блокирующее локальный трафик? Видите ли вы какие-либо исключения в журнале сервера?   -  person Marcus Hellberg    schedule 27.04.2021
comment
Привет, Маркус Хеллберг, спасибо за ответ. Я отредактировал свой вопрос и включил элементы, связанные с репозиторием maven и node, который я использую. Буду признателен за ответ от вас. С уважением.   -  person Manuel    schedule 27.04.2021
comment
Как вы настроили репозиторий узлов на локальной машине?   -  person Simon Martinelli    schedule 27.04.2021
comment
Файл .npmrc, который я использую, выглядит следующим образом: /repository/npm-all no-proxy = nexus.prod.uci.cu strict-ssl = false Я поставил его везде, в каталоге проекта и во всех местах, требуемых библиографией.   -  person Manuel    schedule 27.04.2021
comment
Маркус попросил об исключении. Вот что я нашел: 1) com.vaadin.flow.server.BootstrapException: невозможно прочитать файл статистики веб-пакета. 2) Вызвано: java.net.ConnectException: Отказ в соединении: подключение 3) java.net.ConnectException: Отказ в соединении: подключение   -  person Manuel    schedule 27.04.2021


Ответы (1)


Исключением может быть попытка подключения к серверу webpack-dev-server для получения активов из сгенерированной статистики.

Чтобы исключить проблему с пакетами и подключением, вы можете попробовать запустить производственную сборку с mvn spring-boot:run -Pproduction. Если это работает, то, по крайней мере, пакеты node и maven загружаются правильно.

Если производственный режим работает, то при запуске режима разработки в журналах может быть Webpack failed with the exception:, что указывает на то, что devServer не удалось запустить, и некоторую информацию о том, почему.

Кроме того, установив регистратор для ведения журнала отладки, вы должны получить командную строку, используемую для запуска сервера webpack-dev, что-то вроде

[0m2021-04-28 07:25:38.105 DEBUG 60260 --- [         task-2] dev-webpack                              : 
C:\Program Files\nodejs\node.exe \ 
    .\node_modules\webpack-dev-server\bin\webpack-dev-server.js \ 
    --config .\webpack.config.js --port 62103 \ 
    --watchDogPort=62102 -d --inline=false `

Где вы можете попытаться подключиться к devServer в этом случае, перейдя в localhost:62103. Это должно показать вам структуру папок только с папкой config, но если вы перейдете к localhost:62103/stats.json, вы должны получить файл json, начинающийся с чего-то вроде {"hash":"c827122594d41ad4f7df","assetsByChunkName":{"bundle":"build/vaadin-bundle-...

Чтобы получить журнал отладки, добавьте в application.properties строку logging.level.root = debug. Поскольку вывода много, я бы порекомендовал передать файл, например. запуск mvn > out.txt и поиск в текстовом файле ошибок и информации.

Надеюсь, это поможет выяснить, в чем проблема.

person Mikael Grankvist    schedule 28.04.2021
comment
Спасибо, Микаэль Гранквист!!!. С вашей помощью мне удалось запустить Hello World в Vaadin. С mvn spring-boot:run -Pproduction все работало корректно. Но когда я запускаю mvn spring-boot:run, та же проблема сохраняется. Я не могу найти application.properties, где это в файле Pom.xml? Извините за недостаток знаний. - person Manuel; 29.04.2021
comment
Теперь я также знаю, что репозиторий Nexus моего университета работает правильно. Я буду продолжать пытаться найти причину ошибки в режиме разработки. - person Manuel; 29.04.2021
comment
Я отредактировал свой вопрос. Добавлю кое-что любопытное, что у меня происходит с тем же Hello World в Vaadin. По-видимому, версия, созданная с использованием архетипа Vaadin, нуждается в Интернете, а версия, созданная с сайта, — нет. - person Manuel; 29.04.2021
comment
application.properties — это файл в src/java/main/resources/ в приложении Spring-boot. Созданная версия архетипа фактически использует v19.0.x вместо v14.5.x. - person Mikael Grankvist; 30.04.2021
comment
Есть ли какие-либо исключения в журналах сервера для выполнения архетипа? Автономная страница, вероятно, отображается из-за неожиданного ответа сервера, из-за которого клиент сообщает, что сервер недоступен, например. ты не в сети. Для причала вы можете попробовать запустить mvn package jetty:run -Pproduction, так как по какой-то причине время от времени причал: запуск пропускает некоторые цели. - person Mikael Grankvist; 30.04.2021
comment
Ошибки следующие: Запуск компиляции внешнего интерфейса dev-webpack: Запуск веб-пакета для компиляции ресурсов внешнего интерфейса. Это может занять некоторое время, пожалуйста, подождите... 2021-04-25 17:52:05.147 INFO 7812 --- [задача-2] dev-webpack : запущен webpack-dev-server. Время: 60015 мс 2021-04-25 17:52:07.887 ОШИБКА 7812 --- [nio-8080-exec-8] c.v.flow.server.DefaultErrorHandler: com.vaadin.flow.server.BootstrapException: невозможно прочитать файл статистики веб-пакета .Вызвано: java.net.ConnectException: в соединении отказано: подключение. java.net.ConnectException: - person Manuel; 01.05.2021
comment
С причалом я также использовал производственный режим, то есть: mvn package jetty:run -Pproduction. - person Manuel; 01.05.2021
comment
Все еще звучит так, будто что-то блокирует соединения с локальным хостом. Пробовали ли вы подключиться к серверу webpack-dev напрямую из браузера, чтобы убедиться, что он запущен и обслуживает правильные файлы? - person Mikael Grankvist; 03.05.2021