java.lang.UnsupportedClassVersionError in Dynamic Web Projec



我希望使用eclipse和Azure创建一个基本的Web应用程序。我能够将基本的打印语句上传到互联网,但是当我尝试引用同一项目中的类但不同的包时,我会收到一个错误屏幕。我不明白这些错误,并确保我更新并重新安装了新版本的JDK。这仅在调用另一个类时发生。最初的错误是"测试器/小写已被较新版本的 Java 运行时(类文件版本 57(编译,此版本的运行时仅识别最高 52.0 的类文件版本(无法加载类 [测试器。小写((]"。那是当我安装不同的JDK时,现在我遇到了一个不同的错误,我很难找到解决方案。index.jsp中显示的错误是"在java构建路径上找不到超类"javax.servlet.http.HttpServlet"。我选择暂时忽略这一点,因为一个朋友在他的计算机上做了与我完全相同的代码,并且能够轻松使其工作。当我在项目属性菜单中的项目分面的运行时下选择 Tomcat 时,此错误也得到了解决。

这是标题为"index.jsp"的jsp文件

<%@ page import="tester.Lowercase" %>
<html>
<body>
<% out.println(Lowercase.makeItLower("MAKE THIS LOWERCASE")); %>
</body>
</html>

这是标题为"小写.java的java类

package tester;
public class Lowercase {
public static String makeItLower(String data) {
String str = data.toLowerCase();
return str;
}
}

我知道这是非常简单的代码,应该是一项简单的任务,但是我遇到的这个错误阻止了我制作这个网络应用程序。

你说你已经解决了UnsupportedClassVersionError问题,所以我就不谈了。

Java SE 在其类库中不包含javax.servlet.http.HttpServlet。 该类和相关类来自 Java EE API。 因此,要在Eclipse 中编译 JSP,您需要配置项目的构建路径,以包含包含这些 API 的 JAR 文件。

您可以从Maven Central下载不同版本的API;例如,此页面将为您提供3.0.1版本 https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api/3.0.1。 单击该页面上的"jar"链接。 或者,如果您使用的是受支持的生成工具之一,请将该页面上的相应依赖项信息添加到生成文件中。

当你将JSP部署到Tomcat时,它的原因是Tomcat有自己的servlet类副本,并且在编译JSP时会自动将它们包含在它的构建类路径中。