簡體   English   中英

Google App Engine開發服務器給出錯誤500(IntelliJ IDEA)

[英]Google App Engine Dev Server Gives Error 500 (IntelliJ IDEA)

我剛剛完成了以下內容的全新安裝:

  • IntelliJ IDEA 2016.2.4
  • Google App Engine Java SDK 1.9.42
  • Java JDK 1.8.0_102

我剛剛在IntelliJ中創建了一個新的Java Web應用程序,它將在我的本地主機上運行(使用AppEngine Dev Server 1.9.42,該服務器包含在App Engine SDK中)。

我的項目是全新的。

它為我自動生成了一個index.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
  <html>
    <head>
      <title>$Title$</title>
    </head>
    <body>
      $END$
    </body>
  </html>

默認的web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">
</web-app>

還有一個標准的appengine-web.xml:

<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
  <application></application>
  <version>1</version>
  <threadsafe>true</threadsafe>
</appengine-web-app>

我認為一切都很好,但是當我嘗試運行此示例時。 我收到錯誤500 ...(看起來像廢話...我知道)

HTTP錯誤500

問題訪問/。 原因:

 Unable to load class for JSP Caused by: 

org.apache.jasper.JasperException: 無法在org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:144)的org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:630)處加載JSP類在org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:329)在org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)在org.apache.jasper.servlet.JspServlet.service (JspServlet.java:260)在com.google.appengine.tools.development.PrivilegedJspServlet.access $ 101(PrivilegedJspServlet.java:23)在com.google.appengine.tools.development.PrivilegedJspServlet $ 2.run(PrivilegedJspServlet.java:61) )上com.google.appengine.tools.development.PrivilegedJspServlet.service(PrivilegedJspServlet.java:58)上java.security.AccessController.doPrivileged(本機方法)上的javax.servlet.http.HttpServlet.service(HttpServlet.java:717) ),位於org.mortbay.jetty.servlet.ServletHa上的org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) org.mortbay.jetty.Servlet.ServletHandler $ CachedChain.doFilter()上com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:63)上的ndler $ CachedChain.doFilter(ServletHandler.java:1166) com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectRequest(DevAppServerModulesFilter.java:366)的com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectModuleRequest(DevAppServerModulesFilter.java:349)上的ServletHandler.java:1157) org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1157)上的.google.appengine.tools.development.DevAppServerModulesFilter.doFilter(DevAppServerModulesFilter.java:116)在org.mortbay.jetty.servlet.ServletHandler org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)的org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)的.handle(ServletHandler.java:388)組織中的mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)。 org.mortbay.jetty.servlet.Dispatcher.forward上com.google.appengine.tools.development.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:98)上的mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126)的com.google.appengine.tools.development.StaticFileUtils.serveWelcomeFileAsForward(StaticFileUtils.java:84)的org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126)的com.google com.google.appengine.tools.development.LocalResourceFileServlet.doGet(LocalResourceFileServlet.java:120)上的.appengine.tools.development.LocalResourceFileServlet.maybeServeWelcomeFile(LocalResourceFileServlet.java:260)在javax.servlet.http.HttpServlet.service(HttpServlet) .java:617)(位於org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511),位於org.mortbay.jetty.servlet處的javax.servlet.http.HttpServlet.service(HttpServlet.java:717)。 com.google.appengine.api.socket.dev.DevSocketFilt上的ServletHandler $ CachedChain.doFilter(ServletHandler.java:1166) org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1157)上的er.doFilter(DevSocketFilter.java:74),com.google.appengine.tools.development.ResponseRewriterFilter.doFilter(ResponseRewriterFilter.java: 128)在org.mortbay.jetty的org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1157)在com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:34) org.mortbay.jetty.servlet.ServletHandler $ CachedChain上的com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:63)上的.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1157) com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:50)上的.doFilter(ServletHandler.java:1157)org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1157) ),網址為com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:12 5)位於com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectRequest(DevAppServerModulesFilter.java:366)的org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1157) org.mortbay.jetty.servlet.ServletHandler $ CachedChain.do上的.tools.development.DevAppServerModulesFilter.doDirectModuleRequest(DevAppServerModulesFilter.java:349)位於com.google.appengine.tools.development.DevAppServerModulesFilter.doFilter(DevAppServerModulesFilter.java:116) (ServletHandler.java:1157),位於org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388),位於org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216),位於org.mortbay。在org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)的jetty.servlet.SessionHandler.handle(SessionHandler.java:182)在org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java: 418),網址為com.google.appengine.tools.development.DevAppEngineWebAppContext.handle(D org上org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)上的evAppEngineWebAppContext.java:98)com.google.appengine.tools.development.JettyContainerService $ ApiProxyHandler.handle(JettyContainerService.java:511)上的org.mortbay.jetty.handler.HandlerWrapper.handle org.mortbay.jetty.Server.handle(Server.java:326)上的.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)在org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542上) ),位於org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547)的org.mortbay.jetty.HttpConnection $ RequestHandler.headerComplete(HttpConnection.java:923),位於org.mortbay.jetty.HttpParser.parseAvailable(HttpParser。的org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)的org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)的org.mortbay.thread.QueuedThreadPool $ PoolThread的java:212) .run(QueuedThreadPool.java:582)原因:java.lang.ClassNotFoundException:org.apache.jsp.index_jsp在java.net.URLClassLoader.findClass(URLClassLo org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:134)處的ader.java:381)org.apache.jasper處org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:66)處的ader.java:381) .JspCompilationContext.load(JspCompilationContext.java:628)... 65個以上原因:

java.lang.ClassNotFoundException: org.org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:134)上的java.net.URLClassLoader.findClass(URLClassLoader.java:381)上的org.apache.jsp.index_jsp org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java)上的org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:628)上的apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:66): 144)在org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)在org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:329)在org.apache.jasper.servlet.JspServlet com.google.appengine.tools.development.PrivilegedJspServlet.access $ 101(PrivilegedJspServlet.java:23)的.service(JspServlet.java:260)com.google.appengine.tools.development.PrivilegedJspServlet $ 2.run(PrivilegedJspServlet.java) :61),位於com.google.appengine.tools.development.PrivilegedJspServlet.service(java.security.AccessController.doPrivileged(本機方法)處) org.mortbay.jetty.servlet.javax.servlet.http.HttpServlet.service(HttpServlet.java:717)處的PrivilegedJspServlet.java:58)org.mortbay.jetty.servlet處的org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:63)上的.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1166)在org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter上(ServletHandler.java:1157)com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectRequest(DevAppServerModulesFilter.java:366)com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectModuleRequest(DevAppServerModulesFilter.java:349) com.google.appengine.tools.development.DevAppServerModulesFilter.doFilter(DevAppServerModulesFilter.java:116)在org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1157)在org.mortbay.jetty.servlet。 org.mortbay.jetty.security.Se上的ServletHandler.handle(ServletHandler.java:388) org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)的curityHandler.handle(SecurityHandler.java:216)org.org的org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)的curityHandler.handle(ContextHandler.java:765)位於org.mortbay.jetty.servlet.Dispatcher.forward的com.google.appengine.tools.development.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:98)的.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) (com.google.appengine.tools.development.StaticFileUtils.serveWelcomeFileAsForward(StaticFileUtils.java:84)上的org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126)上的(Dispatcher.java:327)。 google.appengine.tools.develops.LocalResourceFileServlet.maybeServeWelcomeFile(LocalResourceFileServlet.java:260)位於com.google.appengine.tools.development.LocalResourceFileServlet.doGet(LocalResourceFileServlet.java:120)位於javax.servlet.http.HttpServlet.service( org.mort上的javax.servlet.http.HttpServlet.service(HttpServlet.java:717)上的HttpServlet.java:617) org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1166)上的bay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)在com.google.appengine.api.socket.dev上。 org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1157)上的DevSocketFilter.doFilter(DevSocketFilter.java:74)在com.google.appengine.tools.development.ResponseRewriterFilter.doFilter(ResponseRewriterFilter.java: 128)在org.mortbay.jetty的org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1157)在com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:34) org.mortbay.jetty.servlet.ServletHandler $ CachedChain上的com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:63)上的.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1157) com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(Transaction)上的.doFilter(ServletHandler.java:1157) org.org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1157)的com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:125)的CleanupFilter.java:50) com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectRequest(DevAppServerModulesFilter.java:366)上的.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1157)在com.google.appengine.tools.development上org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java)上的com.google.appengine.tools.development.DevAppServerModulesFilter.doFilter(DevAppServerModulesFilter.java:116)上的.DevAppServerModulesFilter.doDirectModuleRequest(DevAppServerModulesFilter.java:349) :1157)位於org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388),位於org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216),位於org.mortbay.jetty.servlet。 org.mortbay.jett上的SessionHandler.handle(SessionHandler.java:182) org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)上的y.handler.ContextHandler.handle(ContextHandler.java:765)在com.google.appengine.tools.development.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext。 org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)上com.google.appengine.tools.development.JettyContainerService $ ApiProxyHandler.handle(JettyContainerService.java:511)上的java.98) org.mortbay.jetty.Server.handle(Server.java:326)的org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)的.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547)上的org.mortbay.jetty.HttpConnection $ RequestHandler.headerComplete(HttpConnection.java:923)在org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java: 212),位於org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.ja)上的org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) va:409)在org.mortbay.thread.QueuedThreadPool $ PoolThread.run(QueuedThreadPool.java:582)

這是我的項目結構/布局:

項目結構

有更多經驗的人知道我做錯了什么嗎? 如果您需要任何其他信息,我們將很樂意提供。

提前致謝。

特里斯坦

App Engine標准環境在Java 1.7下運行servlet spec 2.5

您需要更改:

  • web.xml使用2.5的正確語法
  • 您的jsp對2.5以下的jstl使用正確的語法,並且
  • 確保它在1.7以下運行

我將從安裝1.7 sdk開始,然后,如果一切正常,請嘗試將其恢復回1.8 sdk,以實現1.7的兼容性。在1.7之下運行時,某些1.8版本會破壞jsp編譯

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM