Java Tomcat 9 can';t加载spring启动应用程序
我正在将spring引导应用程序部署到现有的Tomcat 9实例。当tomcat尝试加载上下文时,出现以下错误:Java Tomcat 9 can';t加载spring启动应用程序,java,spring-boot,tomcat9,Java,Spring Boot,Tomcat9,我正在将spring引导应用程序部署到现有的Tomcat 9实例。当tomcat尝试加载上下文时,出现以下错误: org.apache.catalina.startup.HostConfig.deployWAR Error deploying web application archive java.lang.IllegalStateException: Error starting child at org.apache.catalina.core.Conta
org.apache.catalina.startup.HostConfig.deployWAR Error deploying web application archive
java.lang.IllegalStateException: Error starting child
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:720)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:706)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:978)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1848)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:112)
at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:773)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:427)
at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1620)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:305)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1151)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1353)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1357)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1335)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/wservices]]
at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:717)
... 25 more
Caused by: java.lang.NoClassDefFoundError: org/glassfish/jersey/internal/l10n/LocalizableMessageFactory$ResourceBundleSupplier
at org.glassfish.jersey.server.spring.SpringWebApplicationInitializer.onStartup(SpringWebApplicationInitializer.java:46)
at org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:172)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5128)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
... 26 more
Caused by: java.lang.ClassNotFoundException: org.glassfish.jersey.internal.l10n.LocalizableMessageFactory$ResourceBundleSupplier
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1365)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1188)
如果我自己运行这个应用程序,那么使用嵌入式tomcat 9引擎它就可以正常运行
以下是我在pom文件中使用的spring依赖项:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.5.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jersey</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<artifactId>logback-classic</artifactId>
<groupId>ch.qos.logback</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-oracle</artifactId>
<version>1.0.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
org.springframework.boot
spring启动程序父级
2.2.5.1发布
org.springframework.boot
春靴起跑服
org.springframework.boot
spring启动程序日志记录
org.springframework.boot
SpringBootStarterWeb
回归经典
回写
org.springframework.data
spring数据甲骨文
1.0.0.1版本
org.springframework.boot
弹簧启动机tomcat
假如
任何帮助都将不胜感激。您打包了一个所谓的über jar,它在一个jar文件中包含所有运行时依赖项。它还包含一些类加载调整,以从jar中加载这些依赖项。这在Tomcat中不起作用。您需要打包为web应用程序归档 你需要改变
<project>
...
<packaging>war</packaging>
...
战争
有关更多详细信息,请参阅。在Spring Boot中,要创建用于部署的WAR,我们需要3个步骤: 1.扩展SpringBootServletilizer 2.将嵌入式servlet容器标记为提供的容器 3.更新包装以适应战争
有关操作步骤,请参阅。在进一步挖掘之后,问题在于所拉入的球衣版本不正确。该项目引入了Jersey 2.6,这是Spring Boot 2.2.5的错误版本。Jersey 2.6(其中有Jersey common 2.6,其中所讨论的类是)不包括org/glassfish/Jersey/internal/l10n/LocalizableMessageFactory$ResourceBundlesSupplierClass
一旦我修复了pom文件,Tomcat就正确地加载了它。我的项目就是这样设置的。你没有说你是如何修复这个问题的,只是说它是什么。。。。