简体   繁体   中英

Error App Engine -

when I deploy my application, no error appears, however when I access my application, the following error appears:

Error: Server Error The server encountered an error and could not complete your request. Please try again in 30 seconds.

Erro Log on Google App Engine Admin:
Uncaught exception from servlet
java.lang.UnsupportedClassVersionError: org/apache/jsp/PessoaApplication_jsp : Unsupported major.minor version 52.0
    at com.google.appengine.runtime.Request.process-6a9f678c146455a7(Request.java)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:795)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
    at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:360)
    at org.mortbay.util.Loader.loadClass(Loader.java:91)
    at org.mortbay.util.Loader.loadClass(Loader.java:71)
    at org.mortbay.jetty.servlet.Holder.doStart(Holder.java:73)
    at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:242)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:685)
    at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
    at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
    at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
    at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:437)
    at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:444)
    at com.google.tracing.CurrentContext.runInContext(CurrentContext.java:188)
    at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:308)
    at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:300)
    at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:441)
    at java.lang.Thread.run(Thread.java:724)

Follow my homepage:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.util.List" %>
<%@ page import="com.google.appengine.api.users.User" %>
<%@ page import="com.google.appengine.api.users.UserService" %>
<%@ page import="com.google.appengine.api.users.UserServiceFactory" %>
<%@ page import="com.bruno.bariotti.Pessoa" %>
<%@ page import="com.bruno.bariotti.PessoaDao" %>

<!DOCTYPE html>

<html>
<head>
<title>Pessoas</title>
<link rel="stylesheet" type="text/css" href="css/main.css"/>
</head>

<body>
<%
PessoaDao dao = PessoaDao.INSTANCE;
List<Pessoa> pessoas;
pessoas = dao.listPessoas();
%>

Numero total de pessoas: <% pessoas.size(); %> Pessoas.

<table>
<tr>
<th>Nome</th>
<th>Idade</th>
<%for (Pessoa p : pessoas) {%>
<tr>
<td>
<%p.getNome(); %>
</td>
<td>
<%p.getIdade();  %>
</td>
</tr>
<% } %>
</table>

<hr />

<div class="main">
<div class="headline">Nova Pessoa</div>

<form action="/new" method="post" accept-charset="utf-8">
<table>

<tr>
<td><lable for="nome">Nome</lable></td>
<td><input type="text" name="nome" id="nome" size="200"/></td>
</tr>

<tr>
<td><lable for="idade">Idade</lable></td>
<td><input type="text" name="idade" id="idade" size="3"/></td>
</tr>

</table>
</form>

</body>
</html>

This issue happens when you use JDK 1.8 and deploy your application, say, using maven eg mvn appengine:update .

During the update process Google AppEngine maven plugin compiles JSP files (as on the image below) using JDK 1.8. Generated class files gets version number 52.0 which are not currently supported by Google AppEngine (hence your error: Unsupported major.minor version 52.0 ).

JSP编译

Workaround is quite simple: set JAVA_HOME variable to point to your JDK 1.7

Example in Windows:

set JAVA_HOME=c:\Program Files\Java\jdk1.7.0_05

After that you have to run mvn appengine:update again, which will fix the problem.

JDK 1.7 is required by Google actually. You can find out more on Using Apache Maven: Requirements .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM