首页 > 解决方案 > 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>

标签: javaspringapachemaventomcat

解决方案


问题是您正在使用早于版本 8 的 JRE 运行 Tomcat 实例。

Tomcat 可能使用环境变量JAVA_HOME/JRE_HOME来指向 JRE。
看看它现在指向的地方。


推荐阅读