我通過以下方式在生產模式下構建了我的 vaadin 23 應用程式:
mvn clean package -Pproduction -DskipTests -U
我的 pom.xml 包含必要的組態檔:
<!-- vaadin profiles -->
<!-- https://vaadin.com/docs/latest/flow/production/production-build -->
<profiles>
<profile>
<id>production</id>
<properties>
<vaadin.productionMode>true</vaadin.productionMode>
</properties>
<!-- configuration depending on environment -->
<build>
<plugins>
<plugin>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>build-frontend</goal>
</goals>
<phase>compile</phase>
</execution>
</executions>
<configuration>
<productionMode>true</productionMode>
</configuration>
</plugin>
</plugins>
</build>
<!-- .. more configuration .. -->
<dependencies>
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin</artifactId>
<exclusions>
<exclusion>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-dev-server</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</profile>
</profiles>
我正在使用 java 17 為 tomcat 9 構建一個戰爭檔案。
戰爭包含 WEB-INF/classes/META-INF/VAADIN/config/flow-build-info.json
{
"productionMode": true,
"useDeprecatedV14Bootstrapping": false,
"eagerServerLoad": false,
"chunks": {
"fallback": {
"jsModules": [
"@vaadin/select/src/vaadin-select.js",
"./selectConnector.js",
"@polymer/paper-ripple/paper-ripple.js",
"./custom-media-query.js",
"./com/github/appreciated/card/clickable-card.js",
"./com/github/appreciated/card/stateful-card.js",
"./grid-layout/grid-layout.js",
"./font-awesome-iron-iconset/far.js",
"./font-awesome-iron-iconset/fab.js",
"./element-media-query.js",
"@vaadin/charts/src/vaadin-chart.js",
"@vaadin/grid-pro/src/vaadin-grid-pro.js",
"@vaadin/grid-pro/src/vaadin-grid-pro-edit-column.js",
"./gridProConnector.js",
"@vaadin/board/vaadin-board-row.js",
"@vaadin/avatar-group/src/vaadin-avatar-group.js",
"@vaadin/crud/src/vaadin-crud.js",
"@vaadin/crud/src/vaadin-crud-edit-column.js",
"@vaadin/message-input/src/vaadin-message-input.js",
"@vaadin/login/src/vaadin-login-form.js",
"./messageListConnector.js",
"@vaadin/message-list/src/vaadin-message-list.js",
"@vaadin/virtual-list/vaadin-virtual-list.js",
"./virtualListConnector.js",
"@polymer/iron-list/iron-list.js",
"./ironListConnector.js",
"./ironListStyles.js",
"@vaadin/upload/src/vaadin-upload-file.js",
"@vaadin/login/src/vaadin-login-overlay.js",
"@vaadin/board/vaadin-board.js",
"./vaadin-big-decimal-field.js",
"@vaadin/app-layout/src/vaadin-drawer-toggle.js",
"@vaadin/confirm-dialog/src/vaadin-confirm-dialog.js",
"@vaadin/app-layout/src/vaadin-app-layout.js"
],
"cssImports": [
{
"value": "./styles/grid-layout.css"
}
]
}
},
"enableDevServer": false
}
WEB-INF/classes/META-INF/VAADIN/config/stats.json 包含:
{
"assetsByChunkName": {
"bundle": "VAADIN/build/vaadin-bundle-7f98e7fa04576858b6f8.cache.js"
}
}
我能看到的唯一問題是它包含了我沒有使用的模塊,但我認為這與當前問題沒有任何關系。
當我部署戰爭時,tomcat 報告:
(AtmosphereFramework.java:1087) - Atmosphere Framework 2.7.3.slf4jvaadin4 started.
(AtmosphereFramework.java:2626) - Installed AtmosphereInterceptor Track Message Size Interceptor using | with priority BEFORE_DEFAULT
(DefaultDeploymentConfiguration.java:155) - Following issues were discovered with deployment configuration:
WARNING: Vaadin is running in DEBUG MODE with debug features enabled, but with a prebuild frontend bundle (production ready).
When deploying application for production, disable debug features by enabling production mode!
See more from https://vaadin.com/docs/latest/flow/production/overview
[main] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/usr/local/tomcat/webapps/ROOT.war] has finished in [14,764] ms
org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
[main] org.apache.catalina.startup.Catalina.start Server startup in [14985] milliseconds
否則系統按預期作業。
我遵循了這個故障排除指南,一切似乎都是正確的: https ://vaadin.com/docs/latest/flow/production/troubleshooting
uj5u.com熱心網友回復:
多虧了@Frettman 的一個好主意,我最終解決了這個問題。
核心問題實際上是我通過注釋配置的 vaadin servlet。
@WebServlet(urlPatterns =
{ "/*" }, name = "OnePub", asyncSupported = true, loadOnStartup = 1, initParams =
{
@WebInitParam(name = "org.atmosphere.cpr.AtmosphereInterceptor", value = "dev.onepub.servlets.AtmosphereFilter"),
@WebInitParam(name = "closeIdleSessions", value = "true"),
/// changed this when we release.
@WebInitParam(name = "productionMode", value = "false")
})
問題線是
@WebInitParam(name = "productionMode", value = "false")
將值更改為“true”解決了該問題。
@WebInitParam(name = "productionMode", value = "true")
我還做了另一項可能有助于修復的更改。
我的 pom 檔案生產組態檔部分包含一個依賴項:
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin</artifactId>
<exclusions>
<exclusion>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-dev-server</artifactId>
</exclusion>
</exclusions>
</dependency>
我不確定這是如何進入 pom 的,但我將組態檔部分更改為:
<profiles>
<profile>
<!-- Production mode is activated using -Pproduction -->
<id>production</id>
<properties>
<vaadin.productionMode>true</vaadin.productionMode>
</properties>
<dependencies>
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>flow-server-production-mode</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-maven-plugin</artifactId>
<version>${vaadin.version}</version>
<executions>
<execution>
<goals>
<goal>build-frontend</goal>
</goals>
<phase>compile</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/475555.html
上一篇:SpringBootApplication中如何防止畸形請求的例外日志
下一篇:如何在統一2d中翻轉復合字符?