【发布时间】:2021-10-03 15:05:44
【问题描述】:
我目前正在使用 VSCode ide 来处理带有 Maven 的 Spring 2.5 应用程序。由于是旧的 Spring 版本,我知道该应用程序将无法识别超过 7 的 Java 版本。我之前也发布过完全相同的问题,并被告知我的 Tomcat 版本与 8 之前的 Java 应用程序不兼容。
为了解决这个问题,我下载并安装了 Tomcat 8.5,并安装了 Java 7,根据我的研究,它们应该能够相互协作。然而,尽管发生了这种变化,我还是遇到了和以前一样的错误。
[Tomcat 8.5]:2021 年 7 月 27 日下午 2:18:55 org.apache.catalina.core.StandardWrapperValve 调用 严重:为 servlet [SiteAdmin] 分配异常 java.lang.IllegalStateException:上下文命名空间元素“annotation-config”及其解析器类 [org.springframework.context.annotation.AnnotationConfigBeanDefinitionParser] 仅适用于 JDK 1.5 及更高版本
我尝试过更改 pom.xml 文件中的 Java 编译源和目标,以及将 jdk 更改为 1.7,但问题仍然存在。
我应该提到我的计算机上也安装了 Java 11,因为它是运行 VSCode IDE 的要求。此外,尽管将系统路径变量设置为指向其他位置,但运行 Java -version 会导致调用版本 11。我不知道为什么会这样,但可能与问题有关。
对于这个问题的任何帮助将不胜感激。
【问题讨论】:
-
Spring 2.5 已全面启动compatible with Java 6。你试过那个版本吗? (请记住Tomcat compatible with that version of Java are archived)
-
您可能安装了更多版本的 java。
-
您将不得不格外小心,并确保整个构建链是 java 7。我猜您使用的编译器正在生成与 1.7 兼容的字节码,但仍在尝试针对 jre 11 rt.jar 进行编译。在设置 JAVA_HOME 和 JRE_HOME 以及 PATH 环境变量以指向您的 JDK7 安装后,尝试使用 maven 命令行进行构建。然后,如果您遵循 @darnold0714 的建议以确保正确设置了 tomcat,那么您就有机会了。
标签: java spring maven visual-studio-code tomcat8