Java SpringServletContainerInitializer在tomcat 8.0上给出了不支持的主要版本52.0和次要版本52.0问题

Java SpringServletContainerInitializer在tomcat 8.0上给出了不支持的主要版本52.0和次要版本52.0问题,java,spring,maven,tomcat,Java,Spring,Maven,Tomcat,我正在构建一个应用程序,使用Jenkins从git构建代码,并将其部署到tomcat服务器映像。以下是我的配置: Jenkins build在AWS上,将war部署到AWS上的应用服务器。我安装了一个docker,并使用TomcatV8.0映像创建了一个容器。 sudo-docker-run-d——命名tomcat容器-p 8080:8080 tomcat:8.0 当我启动容器并尝试访问应用程序http://:/application时,我收到一个错误。下面是我看到的 10-May-2021 1

我正在构建一个应用程序,使用Jenkins从git构建代码,并将其部署到tomcat服务器映像。以下是我的配置:

Jenkins build在AWS上,将war部署到AWS上的应用服务器。我安装了一个docker,并使用TomcatV8.0映像创建了一个容器。
sudo-docker-run-d——命名tomcat容器-p 8080:8080 tomcat:8.0

当我启动容器并尝试访问应用程序http://:/application时,我收到一个错误。下面是我看到的

10-May-2021 16:15:18.516 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name:               Linux
10-May-2021 16:15:18.516 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version:            4.14.231-173.361.amzn2.x86_64
10-May-2021 16:15:18.516 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture:          amd64
10-May-2021 16:15:18.517 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home:             /usr/lib/jvm/java-7-openjdk-amd64/jre
10-May-2021 16:15:18.517 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version:           1.7.0_181-b01
10-May-2021 16:15:18.517 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor:            Oracle Corporation
10-May-2021 16:15:18.518 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE:         /usr/local/tomcat
10-May-2021 16:15:18.518 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME:         /usr/local/tomcat

10-May-2021 16:17:41.032 SEVERE [14] org.apache.catalina.startup.HostConfig.deployWARs Error waiting for multi-thread deployment of WAR files to complete
 java.lang.InterruptedException
    at java.util.concurrent.FutureTask.awaitDone(FutureTask.java:400)
    at java.util.concurrent.FutureTask.get(FutureTask.java:187)
    at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:766)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:436)
    at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1623)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:318)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:95)
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
    at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1170)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1379)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1383)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1351)
    at java.lang.Thread.run(Thread.java:748)

10-May-2021 16:17:41.486 SEVERE [localhost-startStop-2] org.apache.catalina.core.ContainerBase.addChildInternal ContainerBase.addChild: start: 
 org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/bankingapi]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:755)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:731)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:973)
    at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1850)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:473)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:622)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.UnsupportedClassVersionError: org/springframework/web/SpringServletContainerInitializer : Unsupported major.minor version 52.0 (unable to load class org.springframework.web.SpringServletContainerInitializer)
    at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2532)
    at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:872)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1321)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1180)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:278)
POM.xml:

    <properties>
        <java.version>1.7</java.version>
        <maven.compiler.source>${java.version}</maven.compiler.source>
        <maven.compiler.target>${java.version}</maven.compiler.target>
        <springfox-version>2.9.2</springfox-version>
    </properties>

1.7
${java.version}
${java.version}
2.9.2

请就可能出现的问题提出建议。我无法使用tomcat的当前版本,因为我的应用程序无法在该版本上运行。

谢谢@PiotrPKarwasz的建议。我使用了tomcat v9 docker容器,我能够克服这个问题。我不再有这个问题了。

这是否回答了您的问题?基本上,问题不在于Tomcat的版本(尽管2018年以来不支持8.0),而在于Java的版本(自2015年以来不支持Java 7),这对于您的Spring库来说太旧了。