简体   繁体   中英

Unable to deploy war in tomcat 9 server getting error java.lang.IllegalStateException: Error starting child

2022-07-05 14:40:46,411 [Catalina-utility-2] INFO  org.apache.catalina.core.ContainerBase.[Catalina].[site].[/bk]- 2 Spring WebApplicationInitializers detected on classpath
2022-07-05 14:40:46,614 [Catalina-utility-2] ERROR org.apache.catalina.startup.HostConfig- Error deploying web application archive [/home/user/tomcat/webapps/site/bk.war]
java.lang.IllegalStateException: Error starting child
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:716) ~[catalina.jar:9.0.16]
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690) ~[catalina.jar:9.0.16]
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:695) ~[catalina.jar:9.0.16]
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:978) [catalina.jar:9.0.16]
    at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1850) [catalina.jar:9.0.16]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
    at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
    at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) [tomcat-util.jar:9.0.16]
    at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:118) [?:?]
    at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:773) [catalina.jar:9.0.16]
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:427) [catalina.jar:9.0.16]
    at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1621) [catalina.jar:9.0.16]
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:305) [catalina.jar:9.0.16]
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123) [catalina.jar:9.0.16]
    at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1144) [catalina.jar:9.0.16]
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1346) [catalina.jar:9.0.16]
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1350) [catalina.jar:9.0.16]
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1328) [catalina.jar:9.0.16]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) [?:?]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) [?:?]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-util.jar:9.0.16]
    at java.lang.Thread.run(Thread.java:834) [?:?]
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[site].StandardContext[/bk]]
    at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:441) ~[catalina.jar:9.0.16]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198) ~[catalina.jar:9.0.16]
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:713) ~[catalina.jar:9.0.16]
    ... 24 more

Implying that you didn't move anything else in the configuration:

From the Tomcat 9.0 documentation (Emphasis mine)

  • Copy unpacked directory hierarchy into a subdirectory in directory $CATALINA_BASE/webapps/ . Tomcat will assign a context path to your application based on the subdirectory name you choose. We will use this technique in the build.xml file that we construct, because it is the quickest and easiest approach during development. Be sure to restart Tomcat after installing or updating your application.
  • Copy the web application archive file into directory $CATALINA_BASE/webapps/ . When Tomcat is started, it will automatically expand the web application archive file into its unpacked form, and execute the application that way. This approach would typically be used to install an additional application, provided by a third party vendor or by your internal development staff, into an existing Tomcat installation. NOTE - If you use this approach, and wish to update your application later, you must both replace the web application archive file AND delete the expanded directory that Tomcat created, and then restart Tomcat, in order to reflect your changes.

From the trace, you have your .war file in /home/user/tomcat/webapps/site/ . In other words, you are mixing the options Tomcat gives you.

Either

  1. Move your .war file to /home/user/tomcat/webapps/
  2. Move the .war content into /home/user/tomcat/webapps/site/

Note that you for (1) you will need to access your app as http://localhost:8080/bk/ but for (2) it would be http://localhost:8080/site/ .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM