06-Dec-2019 23:49:29.923 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [E:\apache-tomcat-8.5.34\webapps\demo-0.0.1-SNAPSHOT.war]
06-Dec-2019 23:49:31.682 严重 [localhost-startStop-1] org.apache.catalina.core.ContainerBase.addChildInternal ContainerBase.addChild: start:
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/demo-0.0.1-SNAPSHOT]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:754)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:985)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1857)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
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:2340)
at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:829)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1278)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1137)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:278)
at org.apache.catalina.startup.WebappServiceLoader.loadServices(WebappServiceLoader.java:188)
at org.apache.catalina.startup.WebappServiceLoader.load(WebappServiceLoader.java:159)
at org.apache.catalina.startup.ContextConfig.processServletContainerInitializers(ContextConfig.java:1612)
at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1125)
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:765)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:299)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:94)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5154)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 10 more
06-Dec-2019 23:49:31.688 严重 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Error deploying web application archive [E:\apache-tomcat-8.5.34\webapps\demo-0.0.1-SNAPSHOT.war]
java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/demo-0.0.1-SNAPSHOT]]
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:758)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:985)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1857)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
从 “Unsupported major.minor version 52.0 ”可看出是JDK版本不一致导致,
也就是说你的项目编译和打包的时候的JDK班版本与你tomcat运行的JDK版本不一致,一般的IDE都会内置JDK,
请检查你的IDE用的JDK版本是否是你本地安装的JDK,以Eclipse为例
报错信息明明都说了 不支持的major.minor版本52.0
有两种方法可以修复“ Unsupported major.minor version 52.0”错误,首先是升级到较高Java版本或针对较低Java版本目标环境编译Java源文件。如果收到“ java.lang.unsupportedclassversionerror HelloWorld不支持的major.minor版本52.0”,则表示PATH中的Java版本小于Java8。如果您已经安装了JDK 1.8,则由于PATH设置不正确而导致了该错误。如果您安装了多个JRE版本,则PATH中的较低版本将比较高版本出现。要解决此问题,请检查您的PATH环境变量,并确保首先提供最新版本的Java。您不需要触摸CLASSPATH,因为它不是类路径问题。请记住,PATH和CLASSPATH之间的区别。
如果您无法升级到更高的Java版本,例如您的生产正在JDK 1.6上运行,并且由于“ Unsupported major.minor version 52.0”错误而导致您的最新版本失败,那么您需要修复构建环境。确保要在生产环境中运行时,安装用于构建Java应用程序的相同JDK版本。如果不可能,请使用Java编译器的交叉编译选项通过javac -target选项为您的生产Java / JRE版本生成类文件。例如,如果您的构建环境使用Java 7,而生产环境使用Java 1.6,则使用java -target 1.6选项进行编译以生成Java 6的类文件。
在小程序中
如果您尝试从内部或外部网站运行Applet,则对构建或编译步骤没有任何控制权。 唯一的选择是将浏览器的JRE插件升级到Java8。完成此操作后,应该可以运行任何Java版本中编译的Applet,而不会出现任何问题,请记住Java是向后兼容的。 顺便说一句,从Java 8开始,安全性得到了加强,您不能在Java中运行未签名或自签名的Applet,尤其是在Java控制面板中具有HIGH安全性设置的情况下。 Java 8还删除了MEDIUM安全设置,当您运行这样的Applet时,它会在前面显示警告。
在Eclipse中
如果要在Eclipse中编译Java程序并从命令行运行它,则可以选择针对目标环境编译Java文件。 如果要从Eclipse导出JAR,这也是必需的。 您可以通过选择项目,属性,java编译器和未选中的JDK符合性复选框来更改Compiler符合性级别,从而在Eclipse中更改编译器设置。 缺省情况下,Eclipse基于项目的JRE版本进行编译,这在PATH中的Java中可能会有所不同,当您从命令行运行Java程序时,Eclipse就会起作用。 这是在Eclipse中更改编译器合规性级别的屏幕截图:
选择你的项目
右键单击,选择属性
选择Java编译器
取消选中“ JDK兼容性”复选框