我正试图通过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,这是我尝试运行的版本。它仍然给我同样的错误。
2条答案
按热度按时间vcudknz31#
保持jdk11为
java.home
在系统和vscode中,就像@nathan hughes的评论一样,tomcat9需要jdk8或更高版本。选择JDK11
成为项目JDK和java工具运行时,然后clean java language server worksapce
从命令选项板。重建项目并查看错误是否消失:q7solyqu2#
您必须设置java版本属性
或者配置maven编译器插件
这里是为Java8配置的。从Maven3开始,默认设置为Java6。
看看https://maven.apache.org/plugins/maven-compiler-plugin/examples/set-compiler-source-and-target.html