已经由更新版本的Java Runtime(类文件版本53.0)编译, [英] has been compiled by a more recent version of the Java Runtime (class file version 53.0)

查看:148
本文介绍了已经由更新版本的Java Runtime(类文件版本53.0)编译,的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我使用我的搜索功能时,出现http状态500错误。它声称
$ b

错误报告

HTTP状态500 - 内部服务器错误



类型异常报告

消息SearchServlet已由最新版本的Java Runtime(类文件版本53.0),此版本的Java运行时只能识别最高为52.0的类文件(无法加载[SearchServlet]类)



描述服务器遇到意外情况它完成了请求。

异常
java.lang.UnsupportedClassVersionError:SearchServlet已经被更新版本的Java Runtime(类文件版本53.0 ),此版本的Java运行时仅识别最高为52.0的类文件版本(无法加载类[SearchServlet])
org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2286)
org.apache.catalina.loader.WebappClassLoaderBase。 findClass(WebappClassLoaderBase.java:811)
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1260)
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:488)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
org.apache.coyote。 http11.Http11Processor.service(Http11Processor.java:803)
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
org.apache.coyote.AbstractProtocol $ ConnectionHandler.process(AbstractProtocol。 java:790)
org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor.doRun(NioEndpoint.java:1459)
org.apache.tomcat .util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
java.util.concurrent.ThreadPoolExecutor $ Worker.run(Unknown Source )
org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run(TaskThread.java:61)
java.lang.Thread.run(未知源代码)



当我进入我的编译器时,我正在使用编译器合规性级别9.我有1.8版本,我认为它是最新版本。当我尝试使用eclipse marketplace安装java 9时,它告诉我在 http:/ /download.eclipse.org/eclipse/updates/none



我相信所有这些我完全是最新的,但我怎么无法搜索数据库中的记录?



> <!DOCTYPE html> < HTML> < HEAD> < meta charset =ISO-8859-1> < title>将联系人添加到电话簿< / title>> < h1>将联系人添加到电话簿< / h1>> < /头>> <身体GT;> < form name =submitInfomethod =getaction =AddEntryServlet>>名字:< input type =textname =firstName/>> <峰; br />> <峰; br />>姓氏:< input type =textname =lastName/>> <峰; br />> <峰; br />>区号:< input type =numbername =areaCode/>> <峰; br />> <峰; br />>电话号码:< input type =numbername =phoneNumber/>> <峰; br />> <峰; br />> < input type =submitvalue =Submit/>> > < /形式>> < /体>> < h1>在电话簿中搜索联系人< / h1>> <身体GT;> < form name =searchInfomethod =getaction =SearchServlet>>搜寻名字:< input type =textname =searchFirstName/> > <峰; br />> <峰; br />> > < input type =submitname =actionvalue =search/>> > < /形式> < /体> < / HTML> < br>

搜索servlet代码

  import java.io.IOException; 
import java.io.PrintWriter;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.hibernate.Query; import org.hibernate.Session;

import entities.Tbphonebook;导入util.HibernateUtil;
$ b $ ** * Servlet实现类SearchServlet * /
@SuppressWarnings(deprecation)
@WebServlet(/ SearchServlet)
public class SearchServlet extends HttpServlet {private static final long
serialVersionUID = 1L;
$ b $ **
* @ see HttpServlet#HttpServlet()
* /
public SearchServlet(){
super();
// TODO自动生成构造函数存根

$ b $ ** * @see HttpServlet#doGet(HttpServletRequest请求,HttpServletResponse响应)* /
@SuppressWarnings( {deprecation,unchecked})
保护无效doGet(HttpServletRequest请求,HttpServletResponse响应)抛出ServletException,IOException {
Session session = HibernateUtil.getSessionFactory()。openSession();
session.beginTransaction();
String firstName = request.getParameter(searchFirstName);
@SuppressWarnings(rawtypes)
Query query = Session.createQuery(from Tbphonebook where firstname =?);


列出< Tbphonebook> persons =(List< Tbphonebook>)query.getResultList();



session.getTransaction()。commit();
session.close();



request.setAttribute(persons,persons);
request.getRequestDispatcher(searchResults.jsp)。forward(request,response);
response.sendRedirect(searchResults.jsp);


}

结果jsp

 %@ page language =javacontentType =text / html; charset = ISO-8859-1
pageEncoding =ISO- 8859-1\" %> <!DOCTYPE html PUBLIC - // W3C // DTD HTML 4.01 Transitional // ENhttp://www.w3.org/TR/html4/loose.dtd\">
< html>
< head>
< meta http-equiv =Content-Typecontent =text / html;
charset = ISO-8859-1> < title>在此插入标题< / title> < /头>
< h1>搜寻结果< / h1>
< h1>清单图书:< / h1>
< table class =table table-boardered table-stripedid =searchresults>
< tr>
< th>名字< / th>
< th>姓氏< / th>
< th>区号< / th>
PhoneNumber< / th>
< / tr>
< / table>
< script>
$(document).ready(function(){
$ .getJSON(persons,function(data){
var persons_data ='';
$ .each(数据,函数(键值){
person_date + ='< tr>';
person_data + ='< td>'+ value.Firstname +'< / td>';
person_data + ='< td>'+ value.Lastname +'< / td>';
person_data + ='< td>'+ value.Areacode +'< / td>';
person_data + ='< td>'+ value.Phonenumber +'< / td>';
person_date + ='< / tr>';
}
);
$('#searchresults')。append(persons_data);
});
});
< / script>
<%
String message =(String)request.getAttribute(message);
if(!(message == null)){
out.println(message);
} else {
message =;
out.println(message);
}
%>

< / html>


解决方案

合规等级9。版本52.0是Java 8;我假设53.0是Java 9.您正在尝试运行Java 8上为Java 9编译的代码,这会导致出现错误。将您的合规性版本更改为Java 8。


When i use my search feature I get an http status 500 error. It claims that

Error Report

HTTP Status 500 – Internal Server Error

Type Exception Report

Message SearchServlet has been compiled by a more recent version of the Java Runtime (class file version 53.0), this version of the Java Runtime only recognizes class file versions up to 52.0 (unable to load class [SearchServlet])

Description The server encountered an unexpected condition that prevented it from fulfilling the request.

Exception java.lang.UnsupportedClassVersionError: SearchServlet has been compiled by a more recent version of the Java Runtime (class file version 53.0), this version of the Java Runtime only recognizes class file versions up to 52.0 (unable to load class [SearchServlet]) org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2286) org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:811) org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1260) org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1119) org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:488) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803) org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790) org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459) org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) java.lang.Thread.run(Unknown Source)

When I go to my compiler I am using compiler compliance level 9. I have jre 1.8 which I thought was the most recent. When I try to install java 9 using the eclipse marketplace it tells me that No repository found at http://download.eclipse.org/eclipse/updates/none.

I believe given all of this I am completely up to date but how am I not able to search for records in the database?

>     <!DOCTYPE html> <html> <head> <meta charset="ISO-8859-1"
> <title>Add contact to Phone Book</title>
>    <h1>Add contact to Phone Book</h1>
>    </head>
>    <body>
>        <form name="submitInfo" method="get" action="AddEntryServlet"
>
>         First Name: <input type="text" name="firstName"/>
>         <br/>
>         <br/>
>         Last Name: <input type="text" name="lastName"/>
>         <br/>
>         <br/>
>         Area Code: <input type="number" name="areaCode"/>
>         <br/>
>         <br/>
>         Phone Number: <input type="number" name="phoneNumber"/>
>         <br/>
>         <br/>
>         <input type="submit" value="Submit" />
> 
>     </form>
>     </body>
>       <h1>Search for Contact in Phone Book</h1>
>       <body>
>       <form name="searchInfo" method="get" action="SearchServlet">
>         Search First Name: <input type="text" name="searchFirstName"/> 
>         <br/>
>         <br/>
> 
>         <input type="submit" name="action" value="search" />
>         
>         </form> </body> </html> <br>

Search servlet code

import java.io.IOException; 
import java.io.PrintWriter; 
import java.util.List;

import javax.servlet.ServletException; 
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.hibernate.Query; import org.hibernate.Session;

import entities.Tbphonebook; import util.HibernateUtil;

/**  * Servlet implementation class SearchServlet  */
@SuppressWarnings("deprecation")
@WebServlet("/SearchServlet")
public class SearchServlet extends HttpServlet {    private static final long
serialVersionUID = 1L;

/**
* @see HttpServlet#HttpServlet()
*/
public SearchServlet() {
super();
  // TODO Auto-generated constructor stub
  }

/**      * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)      */
@SuppressWarnings({ "deprecation","unchecked" })
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    Session session = HibernateUtil.getSessionFactory().openSession();
    session.beginTransaction();
    String firstName = request.getParameter("searchFirstName");         
    @SuppressWarnings("rawtypes") 
    Query query = Session.createQuery("from Tbphonebook where firstname = ?");


List<Tbphonebook> persons = (List<Tbphonebook>) query.getResultList();



session.getTransaction().commit();      
session.close();



request.setAttribute("persons", persons);
request.getRequestDispatcher("searchResults.jsp").forward(request,response);
response.sendRedirect("searchResults.jsp");


}

Results jsp

%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%> <!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>Insert title here</title> </head>
<h1>Search Results</h1>
<h1>List Books:</h1>
<table class="table table-boardered table-striped" id="searchresults">      
    <tr>            
        <th>First Name</th>         
        <th>Last Name</th>
        <th>Area Code</th>          
        <th>PhoneNumber</th>
    </tr>       
</table>
<script>
        $(document).ready(function(){
        $.getJSON("persons", function(data){
            var persons_data = '';
            $.each(data, function(key, value){
                person_date += '<tr>';
                person_data += '<td>'+value.Firstname+'</td>';
                person_data += '<td>'+value.Lastname+'</td>';
                person_data += '<td>'+value.Areacode+'</td>';
                person_data += '<td>'+value.Phonenumber+'</td>';
                person_date += '</tr>';
            }
            );
        $('#searchresults').append(persons_data);
        });
    });
 </script>
<%
    String message = (String) request.getAttribute("message");
    if(!(message == null)){
        out.println(message);
        }else{
            message= "";
            out.println(message);
        }
%>

 </html>

解决方案

"When I go to my compiler I am using compiler compliance level 9." Version 52.0 is Java 8; I assume 53.0 is Java 9. You are attempting to run code compiled for Java 9 on Java 8, which results in the error you are getting. Change your compliance version to Java 8.

这篇关于已经由更新版本的Java Runtime(类文件版本53.0)编译,的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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