java - 为什么我无法在JSP页面中创建某些JAVA类的对象

标签 java jsp

我有以下名为 com 包的 Demo 的 JAVA 类

package com;
public class Demo 
{
public String getMessage()
{
    return "hello";
}
}

现在我想在我的index.jsp页面中调用Demo类的方法

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-    8859-1"%>
<%@ page import="com.Demo" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Service Call Management</title>
</head>
<body>
<h1>
<% 
Demo d = new Demo();
out.println(d.getMessage());    
%> 
</h1>
</body>
</html>

但我在 Eclipse Kepler 中的 Apache 7.0.35 服务器收到此错误

type Exception report

message An exception occurred processing JSP page /index.jsp at line 13

description The server encountered an internal error that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: An exception occurred processing JSP page /index.jsp  at line 13

10: <body>
11: <h1>
12: <% 
13:     Demo d = new Demo();
14:     out.println(d.getMessage());    
15: %>
16: </h1>

所以请帮我解决这个问题

这是堆栈跟踪

Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:455)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)

这是根本原因

根本原因

javax.servlet.ServletException: java.lang.UnsupportedClassVersionError: com/Demo :   Unsupported major.minor version 51.0 (unable to load class com.Demo)
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java :912)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:841)
org.apache.jsp.index_jsp._jspService(index_jsp.java:90)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)

root cause

java.lang.UnsupportedClassVersionError: com/Demo : Unsupported major.minor version 51.0 (unable to load class com.Demo)
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2908)
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1173)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1681)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:126)
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:63)
java.lang.ClassLoader.loadClassInternal(Unknown Source)
org.apache.jsp.index_jsp._jspService(index_jsp.java:76)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)

最佳答案

你的代码乍一看是正确的。合乎逻辑的解释是您没有将 Demo.class 打包到 Web 应用程序中的正确位置。您的 .war (或展开的目录)应如下所示:

application.war/
               index.jsp
               /WEB-INF/web.xml
               /WEB-INF/classes/com/Demo.class
... additional stuff

这是最低限度的必要配置,看一下,看看是否缺少什么

在与OP交换一些想法后编辑添加真正的答案:

实际上,问题在于代码是使用比服务器中使用的运行时环境更新版本的 java 编译器进行编译的,因此出现 java.lang.UnsupportedClassVersionError OP 报道。

关于java - 为什么我无法在JSP页面中创建某些JAVA类的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20762423/

相关文章:

java - 上传word文档

java - 将字符串转换为 SQL 日期

java - 仅更新表单中的单个字段,而 Struts 2 中的其他信息保持不变

java - 获取 JSP 标记中的上一个 URL

java - 检查矩形是否相交仅在第一次检查时相交时才起作用

java - 在 JAVA 中捕获音频流

java - 使用 @OneToMany 或 @ManyToMany 定位未映射的类

java - 从 MimeMessage 中删除附件

java - 如何在 jsp 中访问 ModelMap?

java - Spring MVC Controller View