为什么我不能在JSP页面中创建某些JAVA类的对象 [英] Why I cannot Create an Object of Some JAVA class in JSP page

查看:266
本文介绍了为什么我不能在JSP页面中创建某些JAVA类的对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我将以下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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆