无法在java 6上运行java spring应用程序表示需要jdk 1.5或更高版本

xj3cbfub  于 2021-09-13  发布在  Java
关注(0)|答案(2)|浏览(309)

我正试图通过vscode在我的Tomcat9.0服务器上运行一个旧的spring应用程序。我成功地创建了war并尝试运行它,但遇到了以下错误。
org.springframework.beans.factory.beandefinitionstoreexception:解析来自servletcontext资源的xml文档时发生意外异常[/web inf/siteadmin servlet.xml];嵌套异常是java.lang.illegalstateexception:context命名空间元素“annotation config”及其解析器类[org.springframework.context.annotation.annotationconfigbeandefinitionparser]仅在jdk 1.5及更高版本上可用
在做了一些研究之后,我发现我正在使用的spring版本是一个旧版本,它不能识别7以上的java版本。我尝试下载java 6来解决这个问题,但当我尝试运行它时,它仍然会给我同样的错误。
我应该提到,如果您有jdk 11或更高版本,那么vscode的java插件只起作用,所以这是我的主要插件,但是我将war的编译器目标设置为1.6,以及tomcat的java_home变量。我甚至将主系统路径变量设置为指向Java6。
尽管如此,运行java-version命令会得到版本11,甚至vscode也会将其识别为Java1.6。
任何帮助或建议都将不胜感激。如果你需要更多的信息,请告诉我。
我还应该提到,我在Windows10机器上运行这个。
更新:我还应该提到,我也尝试过编辑属性,编译器和maven属性都设置为1.6,这是我尝试运行的版本。它仍然给我同样的错误。

vcudknz3

vcudknz31#

保持jdk11为 java.home 在系统和vscode中,就像@nathan hughes的评论一样,tomcat9需要jdk8或更高版本。选择 JDK11 成为项目JDK和java工具运行时,然后 clean java language server worksapce 从命令选项板。重建项目并查看错误是否消失:

q7solyqu

q7solyqu2#

您必须设置java版本属性

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

或者配置maven编译器插件

<plugins>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.8.1</version>
    <configuration>
      <source>1.8</source>
      <target>1.8</target>
    </configuration>
  </plugin>
</plugins>

这里是为Java8配置的。从Maven3开始,默认设置为Java6。
看看https://maven.apache.org/plugins/maven-compiler-plugin/examples/set-compiler-source-and-target.html

相关问题