为什么我不能在JSP页面中创建某些JAVA类的对象 [英] Why I cannot Create an Object of Some JAVA class in JSP page
问题描述
我将以下JAVA类称为com包的演示
I have following JAVA class named as Demo of com package
package com;
public class Demo
{
public String getMessage()
{
return "hello";
}
}
现在我想在index.jsp页面中调用Demo类的方法
now i want to call a method of Demo class in my index.jsp page
<%@ 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服务器收到此错误
but i get this error by my Apache 7.0.35 server in Eclipse Kepler
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>
所以请帮助我解决此问题
so please help me to resolve this issue
这是堆栈跟踪
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(或分解目录)应如下所示:
Your code looks right at first sight. The logical explanation would be that you have not packaged your Demo.class in the right place in the web application. Your .war (or exploded directory) should look like this:
application.war/
index.jsp
/WEB-INF/web.xml
/WEB-INF/classes/com/Demo.class
... additional stuff
这是最低限度的必要配置,请查看一下,看看是否缺少某些内容
That's the minimum necessary configuration, have a look at it and look if there is something missing
经过修改,可以在与OP交流一些想法后添加真实答案:
Edited to add the real answer after exchanging some ideas with the OP:
实际上,问题在于代码是使用Java编译器的更新版本进行编译的,而不是服务器中使用的运行时环境,因此,OP会报告java.lang.UnsupportedClassVersionError
.
Actually the problem was that the code was compiled with a more recent version of the java compiler than the runtime environment used in the server, thus the java.lang.UnsupportedClassVersionError
reported by the OP.
这篇关于为什么我不能在JSP页面中创建某些JAVA类的对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!