java - tomcat 不支持的major.minor 52.0版
问题描述
我试图运行示例https://github.com/thymeleaf/thymeleafexamples-springmail
当我跑步时mvn tomcat7:run
得到以下错误。不知道什么是不兼容的版本?我附上了 pom.xml 的详细信息。想知道这是否是由于我的 java 版本与 maven 或 tomcat 不兼容造成的?
严重:子容器在启动 java.util.concurrent.ExecutionException 期间失败:org.apache.catalina.LifecycleException:无法在 java.util 启动组件 [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[/springmail]]。 concurrent.FutureTask.report(FutureTask.java:122) at java.util.concurrent.FutureTask.get(FutureTask.java:188) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123) at org .apache.catalina.core.StandardHost.startInternal(StandardHost.java:800) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 在 org.apache.catalina.core.ContainerBase$StartChild.call (ContainerBase.java:1559) 在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) 在 java.util。concurrent.FutureTask.run(FutureTask.java:262) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 在 java .lang.Thread.run(Thread.java:745) 原因:org.apache.catalina.LifecycleException:无法在 org.apache 启动组件 [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[/springmail]]。 catalina.util.LifecycleBase.start(LifecycleBase.java:154) ... 6 更多原因:java.lang.UnsupportedClassVersionError: org/springframework/web/SpringServletContainerInitializer : java.lang.ClassLoader.defineClass1 不支持major.minor 版本52.0 (本机方法)在 java.security 的 java.lang.ClassLoader.defineClass(ClassLoader.java:800)。SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) at java.net.URLClassLoader.access$100(URLClassLoader.java:71) at java.net.URLClassLoader$1.run (URLClassLoader.java:361) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:355) 在 java.security.AccessController.doPrivileged(Native Method) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:354)在 org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1191) 在 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1669) 在 org.apache.catalina.loader.WebappClassLoader.loadClass (WebappClassLoader.java:1547) 在 java.lang.Class 的 java.lang.Class.forName0(Native Method)。forName(Class.java:270) at org.apache.catalina.startup.ContextConfig.getServletContainerInitializer(ContextConfig.java:1668) at org.apache.catalina.startup.ContextConfig.getServletContainerInitializers(ContextConfig.java:1652) at org.apache .catalina.startup.ContextConfig.processServletContainerInitializers(ContextConfig.java:1562) 在 org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1270) 在 org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java :878) 在 org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) 在 org.apache.catalina.util 的 org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:376)。 LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) 在 org.apache。catalina.core.StandardContext.startInternal(StandardContext.java:5322) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ... 还有 6 个
<properties>
<maven.compile.source>1.6</maven.compile.source>
<maven.compile.target>1.6</maven.compile.target>
<project.build.sourceEncoding>US-ASCII</project.build.sourceEncoding>
<thymeleaf.version>3.0.11.RELEASE</thymeleaf.version>
<springframework.version>5.1.0.RELEASE</springframework.version>
</properties>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>${maven.compile.source}</source>
<target>${maven.compile.target}</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.2</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
</plugin>
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf</artifactId>
<version>${thymeleaf.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf-spring5</artifactId>
<version>${thymeleaf.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>commons-digester</groupId>
<artifactId>commons-digester</artifactId>
<version>2.1</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${springframework.version}</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
<!--
// FIXME: why does not work with
<dependency>
<groupId>javax.mail</groupId>
<artifactId>javax.mail-api</artifactId>
<version>1.5.2</version>
</dependency>-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.25</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
<scope>compile</scope>
<exclusions>
<exclusion>
<groupId>com.sun.jdmk</groupId>
<artifactId>jmxtools</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.jmx</groupId>
<artifactId>jmxri</artifactId>
</exclusion>
<exclusion>
<groupId>javax.jms</groupId>
<artifactId>jms</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
解决方案
问题是您正在使用早于版本 8 的 JRE 运行 Tomcat 实例。
Tomcat 可能使用环境变量JAVA_HOME
/JRE_HOME
来指向 JRE。
看看它现在指向的地方。
推荐阅读
- python - 使用 DataFrame loc 时出现“标签 [1] 不在 [index] 中”错误
- ios - 如何只能在 UICollectionView 中的 Indexpath.section 排除 indexpath.row 之间滚动
- html - 当浏览器不是全屏时,不调整 div 但用户主体溢出(x 和 y)来浏览元素
- python - 通过python从变量中通过id在html页面中查找元素
- docker - ArangoDB 未知选项 --rocksdb.encryption-keyfile
- swift - UIImageView 的角半径不适用于具有动态大小的 UICollectionViewCell
- python - 仅在 WSL 上的脚本中的第二个 raw_input 的 Python EOFError
- javascript - JavaScript 错误行为
- angular - 在 Angular 7 中使用 getElementById 对 DOM 元素应用指令
- azure-devops - 是否可以在两个组织之间移动项目集合?