Vaadin: Maven: не запускается в производственном режиме.Не удалось найти файл манифеста пакета "внешний интерфейс: //vaadin-flow-bundle-manifest.json" - PullRequest
0 голосов
/ 14 марта 2019

Vaadin 12.0.4 Maven 3 +

Я загружаю простой проект с официального сайта Vaadin https://vaadin.com/start/latest/simple-ui

В моем проекте Vaadin Maven и Jetty.

В моем пом.xml

 <profiles>
        <profile>
            <!-- Production mode can be activated with either property or profile -->
            <id>production-mode</id>
            <activation>
                <property>
                    <name>vaadin.productionMode</name>
                </property>
            </activation>

            <properties>
                <vaadin.productionMode>true</vaadin.productionMode>
            </properties>

            <dependencies>
                <dependency>
                    <groupId>com.vaadin</groupId>
                    <artifactId>flow-server-production-mode</artifactId>
                </dependency>
</dependencies>

Успешная сборка и запуск в режиме DEBUG .Хорошо.

Но я хочу запустить проект в режиме production .

Я запускаю из командной строки:

mvn jetty:run -Pproduction-mode

или как это:

mvn jetty:run -Pproduction-mode -Dvaadin.productionMode=true

Проект успешно запущен.Но когда я пытаюсь открыть веб-страницу (localhost:8080), я получаю сообщение об ошибке:

[WARNING] unavailable
java.lang.IllegalArgumentException: Failed to find the bundle manifest file 'frontend://vaadin-flow-bundle-manifest.json' in the servlet context for 'ES6' browsers. If you are running a dev-mode servlet container in maven e.g. `jetty:run` change it to `jetty:run-exploded`. If you are not compiling frontend resources, include the 'vaadin-maven-plugin' in your build script. Otherwise, you can skip this error either by disabling production mode, or by setting the servlet parameter 'original.frontend.resources=true'.
    at com.vaadin.flow.server.startup.BundleFilterFactory.readBundleManifest(BundleFilterFactory.java:89)
    at com.vaadin.flow.server.startup.BundleFilterFactory.createBundleFilterForBrowser(BundleFilterFactory.java:79)
    at com.vaadin.flow.server.startup.BundleFilterFactory.createFilters(BundleFilterFactory.java:70)
    at com.vaadin.flow.server.VaadinService.init(VaadinService.java:275)
    at com.vaadin.flow.server.VaadinServlet.createServletService(VaadinServlet.java:201)
    at com.vaadin.flow.server.VaadinServlet.createServletService(VaadinServlet.java:182)
    at com.vaadin.flow.server.VaadinServlet.init(VaadinServlet.java:72)
    at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:672)
    at org.eclipse.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:521)
    at org.eclipse.jetty.servlet.ServletHolder.prepare(ServletHolder.java:805)
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:537)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1588)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1345)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:480)
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1557)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1247)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
    at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:220)
    at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
    at org.eclipse.jetty.server.Server.handle(Server.java:502)
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
    at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
    at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
    at java.lang.Thread.run(Thread.java:748)
[WARNING] /sw.js
[WARNING] /
javax.servlet.ServletException: javax.servlet.ServletException: com.vaadin.flow.server.startup.ServletDeployer@a1f5568f==com.vaadin.flow.server.VaadinServlet,jsp=null,order=-1,inst=false,async=true
    at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146)

1 Ответ

1 голос
/ 15 марта 2019

Как и в сообщении об ошибке: «Если вы используете контейнер сервлетов в dev-режиме в maven, например, jetty:run, измените его на jetty:run-exploded

Причина, по которой вы должны использовать jetty:run-exploded, заключается в том, что выходные файлы производственной сборки размещаются в соответствующих местах внутри /target, тогда как jetty:run ищет статические ресурсы только в /src/main/webapp.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...