2016-12-25 117 views
-1

我试图运行修改春 我正在OD InteliJ IDEA的javax/servlet的/ ServletContext的:不支持MAJOR.MINOR版本52.0

既然是AppEngine上简单的应用程序引擎的留言应用程序,我需要在Java运行7 当我用Java 8编译器编译时,我没有问题。然而,随着Java 7的编译时,我得到这个:

org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.test.context.web.WebDelegatingSmartContextLoader]: Constructor threw exception; nested exception is java.lang.UnsupportedClassVersionError: javax/servlet/ServletContext : Unsupported major.minor version 52.0 
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:154) 
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:102) 
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:125) 
at org.springframework.test.context.support.AbstractTestContextBootstrapper.resolveContextLoader(AbstractTestContextBootstrapper.java:474) 
at org.springframework.test.context.support.AbstractTestContextBootstrapper.buildMergedContextConfiguration(AbstractTestContextBootstrapper.java:359) 
at org.springframework.test.context.support.AbstractTestContextBootstrapper.buildMergedContextConfiguration(AbstractTestContextBootstrapper.java:305) 
at org.springframework.test.context.support.AbstractTestContextBootstrapper.buildTestContext(AbstractTestContextBootstrapper.java:112) 
at org.springframework.test.context.TestContextManager.<init>(TestContextManager.java:120) 
at org.springframework.test.context.TestContextManager.<init>(TestContextManager.java:105) 
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTestContextManager(SpringJUnit4ClassRunner.java:152) 
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.<init>(SpringJUnit4ClassRunner.java:143) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 
at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:104) 
at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86) 
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) 
at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26) 
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) 
at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:33) 
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:250) 
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141) 
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:606) 
at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189) 
at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165) 
at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85) 
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115) 
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75) 
Caused by: java.lang.UnsupportedClassVersionError: javax/servlet/ServletContext : Unsupported major.minor version 52.0 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:800) 
    at java.security.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) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 
    at org.springframework.test.context.web.WebDelegatingSmartContextLoader.<init>(WebDelegatingSmartContextLoader.java:63) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 
    at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:142) 
    ... 32 more 

这里是我的双响炮

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 

<modelVersion>4.0.0</modelVersion> 
<packaging>war</packaging> 
<version>0.1-SNAPSHOT</version> 

<groupId>XXXXX</groupId> 
<artifactId>XXXXX</artifactId> 

<properties> 
    <app.id>XXXXX</app.id> 
    <app.version>1</app.version> 
    <appengine.version>1.9.46</appengine.version> 
    <gcloud.plugin.version>2.0.9.74.v20150814</gcloud.plugin.version> 

    <objectify.version>5.1.13</objectify.version> 
    <guava.version>20.0</guava.version> 

    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <maven.compiler.showDeprecation>true</maven.compiler.showDeprecation> 
    <spring.framework.version> 4.3.4.RELEASE</spring.framework.version> 
    <jackson.version>2.8.5</jackson.version> 
    <javax.servlet.api.version>4.0.0-b01</javax.servlet.api.version> 

    <maven.compiler.source>1.7</maven.compiler.source> 
    <maven.compiler.target>1.7</maven.compiler.target> 
</properties> 

<prerequisites> 
    <maven>3.1.0</maven> 
</prerequisites> 

<dependencies> 
    <!-- Compile/runtime dependencies --> 
    <dependency> 
     <groupId>com.google.appengine</groupId> 
     <artifactId>appengine-api-1.0-sdk</artifactId> 
     <version>${appengine.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>javax.servlet-api</artifactId> 
     <version>${javax.servlet.api.version}</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>jstl</groupId> 
     <artifactId>jstl</artifactId> 
     <version>1.2</version> 
    </dependency> 

    <!-- [START Spring Dependencies] --> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-core</artifactId> 
     <version>${spring.framework.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-web</artifactId> 
     <version>${spring.framework.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-webmvc</artifactId> 
     <version>${spring.framework.version}</version> 
    </dependency> 
    <!-- [END Spring Dependencies] --> 

    <!-- [START Objectify_Dependencies] --> 
    <dependency> 
     <groupId>com.google.guava</groupId> 
     <artifactId>guava</artifactId> 
     <version>${guava.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>com.googlecode.objectify</groupId> 
     <artifactId>objectify</artifactId> 
     <version>${objectify.version}</version> 
    </dependency> 
    <!-- [END Objectify_Dependencies] --> 

    <!-- Test Dependencies --> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.12</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.mockito</groupId> 
     <artifactId>mockito-all</artifactId> 
     <version>2.0.2-beta</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>com.google.appengine</groupId> 
     <artifactId>appengine-testing</artifactId> 
     <version>${appengine.version}</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>com.google.appengine</groupId> 
     <artifactId>appengine-api-stubs</artifactId> 
     <version>${appengine.version}</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-test</artifactId> 
     <version>${spring.framework.version}</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>com.fasterxml.jackson.core</groupId> 
     <artifactId>jackson-core</artifactId> 
     <version>${jackson.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>com.fasterxml.jackson.core</groupId> 
     <artifactId>jackson-databind</artifactId> 
     <version>${jackson.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>com.fasterxml.jackson.core</groupId> 
     <artifactId>jackson-annotations</artifactId> 
     <version>${jackson.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.hamcrest</groupId> 
     <artifactId>hamcrest-all</artifactId> 
     <version>1.3</version> 
     <scope>test</scope> 
    </dependency> 

</dependencies> 

<build> 
    <!-- for hot reload of the web application--> 
    <outputDirectory>${project.build.directory}/${project.build.finalName}/WEB-INF/classes</outputDirectory> 
    <plugins> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>versions-maven-plugin</artifactId> 
      <version>2.1</version> 
      <executions> 
       <execution> 
        <phase>compile</phase> 
        <goals> 
         <goal>display-dependency-updates</goal> 
         <goal>display-plugin-updates</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <version>3.6</version> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <configuration> 
       <source>1.7</source> 
       <target>1.7</target> 
       <compilerVersion>1.7</compilerVersion> 
      </configuration> 
     </plugin> 

     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-war-plugin</artifactId> 
      <version>3.0.0</version> 
      <configuration> 
       <archiveClasses>true</archiveClasses> 
       <webResources> 
        <!-- in order to interpolate version from pom into appengine-web.xml --> 
        <resource> 
         <directory>${basedir}/src/main/webapp/WEB-INF</directory> 
         <filtering>true</filtering> 
         <targetPath>WEB-INF</targetPath> 
        </resource> 
       </webResources> 
      </configuration> 
     </plugin> 

     <plugin> 
      <groupId>com.google.appengine</groupId> 
      <artifactId>appengine-maven-plugin</artifactId> 
      <version>${appengine.version}</version> 
      <configuration> 
       <enableJarClasses>false</enableJarClasses> 
       <version>${app.version}</version> 
       <!-- Comment in the below snippet to bind to all IPs instead of just localhost --> 
       <!-- address>0.0.0.0</address> 
       <port>8080</port --> 
       <!-- Comment in the below snippet to enable local debugging with a remote debugger 
        like those included with Eclipse or IntelliJ --> 
       <!-- jvmFlags> 
        <jvmFlag>-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n</jvmFlag> 
       </jvmFlags --> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>com.google.appengine</groupId> 
      <artifactId>gcloud-maven-plugin</artifactId> 
      <version>${gcloud.plugin.version}</version> 
      <configuration> 
       <set_default>true</set_default> 
      </configuration> 
     </plugin> 
    </plugins> 

    <testResources> 
     <testResource> 
      <directory>${basedir}/src/main/webapp</directory> 
     </testResource> 
    </testResources> 
</build> 

我的JAVA_HOME ISET到Java7,内部项目结构工程SDK是Java7定义。 Maven导入器的JDK是Java77,Maven Runner的JRE设置为JDK项目

可以请您告诉我,即使我已将所有内容都设置为Java 7,可能会出现此错误的可能性吗?以及如何解决它:)

感谢

+1

的Servlet 4.0是基于Java 8.如果您需要要在Java 7上运行,您不应该使用与Java 8一起编译的那个版本的servlet API。 –

回答

0

我傻...... 解决方案是使用的javax.servlet-API版本3.1.0

相关问题