Error on start of Spring Boot Application (Vaadin)
Asked Answered
M

4

8

I tried to change port of Spring Boot application, activated Vaadin PRO, run in Eclipse/PowerShell, run in debug and without debug... I have node.js 12.16.1 (includes npm 6.13.4) installed too. I always get an error: java.lang.RuntimeException: Unable to initialize Vaadin DevModeHandler

:: Spring Boot ::        (v2.2.4.RELEASE)

2020-03-16 07:34:43.681  INFO 12284 --- [           main] s.q.myapp.ui.MyAppWebApplication   : Starting MyAppWebApplication on luigi10 with PID 12284 (C:\Workspaces\myapp\myapp\myapp-web\target\classes started by luigi.k in C:\Workspaces\myapp\myapp\myapp-web)
2020-03-16 07:34:43.684  INFO 12284 --- [           main] s.q.myapp.ui.MyAppWebApplication   : No active profile set, falling back to default profiles: default
2020-03-16 07:34:44.734  INFO 12284 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8082 (http)
2020-03-16 07:34:44.744  INFO 12284 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2020-03-16 07:34:44.745  INFO 12284 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.30]
2020-03-16 07:34:44.936  INFO 12284 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2020-03-16 07:34:44.936  INFO 12284 --- [           main] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 1210 ms
2020-03-16 07:34:47.109  INFO 12284 --- [           main] c.v.f.s.VaadinServletContextInitializer  : Search for subclasses and classes with annotations took 1 seconds
2020-03-16 07:34:47.112  INFO 12284 --- [           main] c.v.f.server.startup.DevModeInitializer  : Starting dev-mode updaters in C:\Workspaces\myapp\myapp\myapp-web folder.
2020-03-16 07:34:47.141  INFO 12284 --- [           main] dev-updater                              : Visited 122 classes. Took 19 ms.
2020-03-16 07:34:47.156  INFO 12284 --- [           main] dev-updater                              : Skipping `npm install`.
2020-03-16 07:34:47.156  INFO 12284 --- [           main] dev-updater                              : Copying frontend resources from jar files ...
2020-03-16 07:34:47.219  INFO 12284 --- [           main] dev-updater                              : Visited 12 resources. Took 63 ms.
2020-03-16 07:34:47.286  INFO 12284 --- [           main] dev-updater                              : Updated C:\Workspaces\myapp\myapp\myapp-web\target\frontend\generated-flow-imports.js
2020-03-16 07:34:49.562  INFO 12284 --- [           main] dev-webpack                              : Starting webpack-dev-server, port: 57479 dir: C:\Workspaces\myapp\myapp\myapp-web
2020-03-16 07:34:49.577  INFO 12284 --- [           main] dev-webpack                              : Running webpack to compile frontend resources. This may take a moment, please stand by...
2020-03-16 07:34:50.406 ERROR 12284 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Exception sending context initialized event to listener instance of class [com.vaadin.flow.spring.VaadinServletContextInitializer$DevModeServletContextListener]

java.lang.RuntimeException: Unable to initialize Vaadin DevModeHandler
        at com.vaadin.flow.spring.VaadinServletContextInitializer$DevModeServletContextListener.contextInitialized(VaadinServletContextInitializer.java:347) ~[vaadin-spring-12.1.2.jar:na]
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4683) ~[tomcat-embed-core-9.0.30.jar:9.0.30]
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5146) ~[tomcat-embed-core-9.0.30.jar:9.0.30]
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[tomcat-embed-core-9.0.30.jar:9.0.30]
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384) ~[tomcat-embed-core-9.0.30.jar:9.0.30]
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374) ~[tomcat-embed-core-9.0.30.jar:9.0.30]
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
        at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) ~[tomcat-embed-core-9.0.30.jar:9.0.30]
        at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140) ~[na:na]
        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909) ~[tomcat-embed-core-9.0.30.jar:9.0.30]
        at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:841) ~[tomcat-embed-core-9.0.30.jar:9.0.30]
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[tomcat-embed-core-9.0.30.jar:9.0.30]
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384) ~[tomcat-embed-core-9.0.30.jar:9.0.30]
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374) ~[tomcat-embed-core-9.0.30.jar:9.0.30]
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
        at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) ~[tomcat-embed-core-9.0.30.jar:9.0.30]
        at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140) ~[na:na]
        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909) ~[tomcat-embed-core-9.0.30.jar:9.0.30]
        at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262) ~[tomcat-embed-core-9.0.30.jar:9.0.30]
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[tomcat-embed-core-9.0.30.jar:9.0.30]
        at org.apache.catalina.core.StandardService.startInternal(StandardService.java:421) ~[tomcat-embed-core-9.0.30.jar:9.0.30]
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[tomcat-embed-core-9.0.30.jar:9.0.30]
        at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:930) ~[tomcat-embed-core-9.0.30.jar:9.0.30]
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[tomcat-embed-core-9.0.30.jar:9.0.30]
        at org.apache.catalina.startup.Tomcat.start(Tomcat.java:459) ~[tomcat-embed-core-9.0.30.jar:9.0.30]
        at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.initialize(TomcatWebServer.java:107) ~[spring-boot-2.2.4.RELEASE.jar:2.2.4.RELEASE]
        at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.<init>(TomcatWebServer.java:88) ~[spring-boot-2.2.4.RELEASE.jar:2.2.4.RELEASE]
        at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getTomcatWebServer(TomcatServletWebServerFactory.java:438) ~[spring-boot-2.2.4.RELEASE.jar:2.2.4.RELEASE]
        at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getWebServer(TomcatServletWebServerFactory.java:191) ~[spring-boot-2.2.4.RELEASE.jar:2.2.4.RELEASE]
        at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.createWebServer(ServletWebServerApplicationContext.java:180) ~[spring-boot-2.2.4.RELEASE.jar:2.2.4.RELEASE]
        at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:153) ~[spring-boot-2.2.4.RELEASE.jar:2.2.4.RELEASE]
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:544) ~[spring-context-5.2.3.RELEASE.jar:5.2.3.RELEASE]
        at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:141) ~[spring-boot-2.2.4.RELEASE.jar:2.2.4.RELEASE]
        at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:747) ~[spring-boot-2.2.4.RELEASE.jar:2.2.4.RELEASE]
        at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) ~[spring-boot-2.2.4.RELEASE.jar:2.2.4.RELEASE]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) ~[spring-boot-2.2.4.RELEASE.jar:2.2.4.RELEASE]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) ~[spring-boot-2.2.4.RELEASE.jar:2.2.4.RELEASE]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1215) ~[spring-boot-2.2.4.RELEASE.jar:2.2.4.RELEASE]
        at com.comp.myapp.ui.MyAppWebApplication.main(MyAppWebApplication.java:10) ~[classes/:na]
Caused by: javax.servlet.ServletException: java.lang.IllegalStateException: Webpack exited prematurely
        at com.vaadin.flow.server.startup.DevModeInitializer.initDevModeHandler(DevModeInitializer.java:301) ~[flow-server-2.1.5.jar:2.1.5]
        at com.vaadin.flow.spring.VaadinServletContextInitializer$DevModeServletContextListener.contextInitialized(VaadinServletContextInitializer.java:344) ~[vaadin-spring-12.1.2.jar:na]
        ... 38 common frames omitted
Caused by: java.lang.IllegalStateException: Webpack exited prematurely
        at com.vaadin.flow.server.DevModeHandler.<init>(DevModeHandler.java:202) ~[flow-server-2.1.5.jar:2.1.5]
        at com.vaadin.flow.server.DevModeHandler.createInstance(DevModeHandler.java:299) ~[flow-server-2.1.5.jar:2.1.5]
        at com.vaadin.flow.server.DevModeHandler.start(DevModeHandler.java:249) ~[flow-server-2.1.5.jar:2.1.5]
        at com.vaadin.flow.server.DevModeHandler.start(DevModeHandler.java:226) ~[flow-server-2.1.5.jar:2.1.5]
        at com.vaadin.flow.server.startup.DevModeInitializer.initDevModeHandler(DevModeInitializer.java:297) ~[flow-server-2.1.5.jar:2.1.5]
        ... 39 common frames omitted

2020-03-16 07:34:50.444 ERROR 12284 --- [           main] o.apache.catalina.core.StandardContext   : One or more listeners failed to start. Full details will be found in the appropriate container log file
2020-03-16 07:34:50.445 ERROR 12284 --- [           main] o.apache.catalina.core.StandardContext   : Context [] startup failed due to previous errors
2020-03-16 07:34:50.453  WARN 12284 --- [           main] o.a.c.loader.WebappClassLoaderBase       : The web application [ROOT] appears to have started a thread named [Thread-1] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
 [email protected]/java.net.PlainSocketImpl.accept0(Native Method)
 [email protected]/java.net.PlainSocketImpl.socketAccept(PlainSocketImpl.java:159)
 [email protected]/java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:458)
 [email protected]/java.net.ServerSocket.implAccept(ServerSocket.java:551)
 [email protected]/java.net.ServerSocket.accept(ServerSocket.java:519)
 app//com.vaadin.flow.server.DevServerWatchDog$WatchDogServer.run(DevServerWatchDog.java:58)
 [email protected]/java.lang.Thread.run(Thread.java:834)
2020-03-16 07:34:50.669  INFO 12284 --- [           main] o.apache.catalina.core.StandardService   : Stopping service [Tomcat]
2020-03-16 07:34:50.675  WARN 12284 --- [           main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat
2020-03-16 07:34:50.684  INFO 12284 --- [           main] ConditionEvaluationReportLoggingListener :

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2020-03-16 07:34:50.693 ERROR 12284 --- [           main] o.s.boot.SpringApplication               : Application run failed

org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat
        at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:156) ~[spring-boot-2.2.4.RELEASE.jar:2.2.4.RELEASE]
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:544) ~[spring-context-5.2.3.RELEASE.jar:5.2.3.RELEASE]
        at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:141) ~[spring-boot-2.2.4.RELEASE.jar:2.2.4.RELEASE]
        at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:747) ~[spring-boot-2.2.4.RELEASE.jar:2.2.4.RELEASE]
        at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) ~[spring-boot-2.2.4.RELEASE.jar:2.2.4.RELEASE]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) ~[spring-boot-2.2.4.RELEASE.jar:2.2.4.RELEASE]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) ~[spring-boot-2.2.4.RELEASE.jar:2.2.4.RELEASE]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1215) ~[spring-boot-2.2.4.RELEASE.jar:2.2.4.RELEASE]
        at com.comp.myapp.ui.MyAppWebApplication.main(MyAppWebApplication.java:10) ~[classes/:na]
Caused by: org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat
        at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.initialize(TomcatWebServer.java:126) ~[spring-boot-2.2.4.RELEASE.jar:2.2.4.RELEASE]
        at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.<init>(TomcatWebServer.java:88) ~[spring-boot-2.2.4.RELEASE.jar:2.2.4.RELEASE]
        at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getTomcatWebServer(TomcatServletWebServerFactory.java:438) ~[spring-boot-2.2.4.RELEASE.jar:2.2.4.RELEASE]
        at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getWebServer(TomcatServletWebServerFactory.java:191) ~[spring-boot-2.2.4.RELEASE.jar:2.2.4.RELEASE]
        at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.createWebServer(ServletWebServerApplicationContext.java:180) ~[spring-boot-2.2.4.RELEASE.jar:2.2.4.RELEASE]
        at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:153) ~[spring-boot-2.2.4.RELEASE.jar:2.2.4.RELEASE]
        ... 8 common frames omitted
Caused by: java.lang.IllegalStateException: StandardEngine[Tomcat].StandardHost[localhost].TomcatEmbeddedContext[] failed to start
        at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.rethrowDeferredStartupExceptions(TomcatWebServer.java:171) ~[spring-boot-2.2.4.RELEASE.jar:2.2.4.RELEASE]
        at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.initialize(TomcatWebServer.java:110) ~[spring-boot-2.2.4.RELEASE.jar:2.2.4.RELEASE]
        ... 13 common frames omitted

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.2.4.RELEASE</version>
            <relativePath /> <!-- lookup parent from repository -->
        </parent>
        <groupId>com.corp</groupId>
        <artifactId>myapp-web</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <name>myapp-web</name>
        <description>WEB for MyApp</description>

        <properties>
            <java.version>11</java.version>
            <vaadin.version>14.1.17</vaadin.version>
        </properties>
        <repositories>
            <repository>
                <id>central</id>
                <url>https://repo.maven.apache.org/maven2</url>
                <snapshots>
                    <enabled>false</enabled>
                </snapshots>
            </repository>
            <repository>
                <id>vaadin-addons</id>
                <url>https://maven.vaadin.com/vaadin-addons</url>
                <snapshots>
                    <enabled>false</enabled>
                </snapshots>
            </repository>
        </repositories>
        <dependencies>
            <dependency>
                <groupId>com.vaadin</groupId>
                <artifactId>vaadin-crud-flow</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <dependency>
                <groupId>com.vaadin</groupId>
                <artifactId>vaadin-spring-boot-starter</artifactId>
            </dependency>

            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.junit.vintage</groupId>
                        <artifactId>junit-vintage-engine</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.vaadin</groupId>
                <artifactId>vaadin</artifactId>
                <exclusions>
                    <exclusion>
                        <groupId>com.vaadin.webjar</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.webjars.bowergithub.insites</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.webjars.bowergithub.polymer</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.webjars.bowergithub.polymerelements</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.webjars.bowergithub.vaadin</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.webjars.bowergithub.webcomponents</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
        </dependencies>

        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>com.vaadin</groupId>
                    <artifactId>vaadin-bom</artifactId>
                    <version>${vaadin.version}</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>

        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    </project>

The solution, that worked for me: I had node_modules folder checkout from GIT. I deleted all modules from folder node_modules and file package-lock.json too. Then I ran Spring Boot application and automatically started 'npm install' and generated new modules. Application was starting without error.

Marginalia answered 16/3, 2020 at 6:53 Comment(11)
can you update question with your pom.xmlPrudhoe
This issue could be resolved by using vaadin version 14.0.11 instead of 12.1.2. for workaround to get production mode jar is adding to application.properties vaadin.productionMode=true.Unman
@CodeKadiya I added pom.xmlMarginalia
@LaminooLawrance I´m using version 14.1.17Marginalia
please change the java version 1.8 then let me know wether, then I'll try to give solutionPrudhoe
change port and try running again. Final cause lines says something about tomcat container. May be port cannot acquired.Zyrian
@LaminooLawrance I added vaadin.productionMode=true and app is successfully running, but I open localhost:8080 in browser, I get error: Cannot get the 'stats.json' from the classpath 'META-INF/VAADIN/config/stats.json' 2020-03-16 08:53:18.564 ERROR 17188 --- [nio-8080-exec-1] c.v.flow.server.DefaultErrorHandler : com.vaadin.flow.server.BootstrapException: Unable to read webpack stats file.Marginalia
To get it running you should copy {ROOT}/config to src/main/resources/META-INF/VAADIN/ And from the {ROOT}/build copy webcomponentsjs/** and vaadin-bundle*.js to src/main/resources/META-INF/VAADIN/buildUnman
This is not related to your question directly, but node_modules should not be added to a version control : Vaadin what to add for version-controlUhl
Do you solve that problem?Fingered
Do you solve that problem? Could you share a mvp of your app?Decrepitate
V
5

Run mvn clean package -Pproduction following by Vaadin documentation. It works for me.

Venterea answered 15/4, 2022 at 12:12 Comment(0)
F
3

Run mvn clean install. This is a basic of work with Vaadin. If you have any problem with Vaadin at first rebuild the project.

Fingered answered 2/12, 2021 at 19:16 Comment(0)
U
0

As Piotr said mvn clean package -Pproduction is cmd by official Vaadin docs and you can find details how to build for production including maven on https://vaadin.com/docs/v14/flow/production/overview

Ultravirus answered 7/4, 2023 at 15:12 Comment(0)
P
0

This is one of the worse errors. I got this when the Npm package reference wasn't declared in my VaadinApplication.

@SpringBootApplication
@Theme("my-theme")
@NpmPackage(value = "@fontsource/lora", version = "4.5.0")
public class VaadinApplication implements AppShellConfigurator {
.
.

}

That fixed the first error, and now I get the same error again as I'm trying to include a grid! Looks like I have to keep looking..

Pinball answered 28/10, 2023 at 10:29 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.