2011-04-14 106 views
2

我在App Engine上出现了一个奇怪的错误500与我的JSP。GAE上出现jsp错误500/J

这很奇怪,因为错误发生只有与jsp的3个第一请求。

因此,我浏览到.jsp网址,我重新加载了2-3次,我有2-3个错误500,我再次重新加载,它的工作原理。

的test.jsp的是这样的:

<% String s = "hello"; %><h2><% out.println(s); %></h2> 

的有趣的事情是,我的HTML文件的作品,由JS提出的异步请求工作压力太大。

我想我有一个错误在配置中,但我找不到。

编辑:

我试图清空的web.xml中,queue.xml中和复位的AppEngine-web.xml中

错误日志这里引擎收录:pastebin.com/ TDZH4xj3

我也禁用了始终开启选项,并以新名称重新部署应用程序。还是一样的错误。

2011-04-18 00:10:20.312 /test.jsp 500 3665ms 1820cpu_ms 0kb Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.29 (KHTML, like Gecko) Chrome/12.0.733.0 Safari/534.29,gzip(gfe),gzip(gfe),gzip(gfe) 
92.245.143.214 - - [18/Apr/2011:00:10:20 -0700] "GET /test.jsp HTTP/1.1" 500 0 - "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.29 (KHTML, like Gecko) Chrome/12.0.733.0 Safari/534.29,gzip(gfe),gzip(gfe),gzip(gfe)" "www.planeteimmo.net" ms=3666 cpu_ms=1820 api_cpu_ms=0 cpm_usd=0.050630 loading_request=1 



W 2011-04-18 00:10:20.297 
Error for /test.jsp 
java.lang.AbstractMethodError: javax.servlet.jsp.JspFactory.getJspApplicationContext(Ljavax/servlet/ServletContext;)Ljavax/servlet/jsp/JspApplicationContext; 
    at org.apache.jsp.test_jsp._jspInit(test_jsp.java:22) 
    at org.apache.jasper.runtime.HttpJspBase.init(HttpJspBase.java:76) 
    at org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:440) 
    at org.mortbay.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:339) 
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166) 
    at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:97) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
    at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:35) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
    at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) 
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) 
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) 
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) 
    at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:238) 
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
    at org.mortbay.jetty.Server.handle(Server.java:326) 
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) 
    at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923) 
    at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:76) 
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) 
    at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:135) 
    at com.google.apphosting.runtime.JavaRuntime.handleRequest(JavaRuntime.java:261) 
    at com.google.apphosting.base.RuntimePb$EvaluationRuntime$2.handleRequest(RuntimePb.java:9285) 
    at com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java:437) 
    at com.google.net.rpc.impl.Server$RpcTask.runInContext(Server.java:573) 
    at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:448) 
    at com.google.tracing.TraceContext.runInContext(TraceContext.java:688) 
    at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:326) 
    at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:318) 
    at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:446) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 
    at java.lang.Thread.run(Thread.java:636) 





C 2011-04-18 00:10:20.307 
Uncaught exception from servlet 
java.lang.AbstractMethodError: javax.servlet.jsp.JspFactory.getJspApplicationContext(Ljavax/servlet/ServletContext;)Ljavax/servlet/jsp/JspApplicationContext; 
    at org.apache.jsp.test_jsp._jspInit(test_jsp.java:22) 
    at org.apache.jasper.runtime.HttpJspBase.init(HttpJspBase.java:76) 
    at org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:440) 
    at org.mortbay.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:339) 
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166) 
    at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:97) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
    at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:35) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
    at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) 
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) 
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) 
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) 
    at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:238) 
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
    at org.mortbay.jetty.Server.handle(Server.java:326) 
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) 
    at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923) 
    at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:76) 
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) 
    at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:135) 
    at com.google.apphosting.runtime.JavaRuntime.handleRequest(JavaRuntime.java:261) 
    at com.google.apphosting.base.RuntimePb$EvaluationRuntime$2.handleRequest(RuntimePb.java:9285) 
    at com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java:437) 
    at com.google.net.rpc.impl.Server$RpcTask.runInContext(Server.java:573) 
    at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:448) 
    at com.google.tracing.TraceContext.runInContext(TraceContext.java:688) 
    at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:326) 
    at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:318) 
    at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:446) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 
    at java.lang.Thread.run(Thread.java:636) 
+1

500就是App Engine向用户返回的内容。管理控制台中的日志显示什么? – 2011-04-15 02:03:37

+0

以下是Pastebin的完整日志: http://pastebin.com/TDZH4xj3 – 2011-04-18 07:12:14

+0

您是否尝试在GAE上部署后立即打开网址? – kunal 2011-04-19 14:01:27

回答

4

java.lang.AbstractMethodError: javax.servlet.jsp.JspFactory.getJspApplicationContext(Ljavax/servlet/ServletContext;)Ljavax/servlet/jsp/JspApplicationContext;

你在你的web应用程序的文件夹/WEB-INF/lib具体servletcontainer其libaries与由servletcontainer在Web应用程序运行所提供的库冲突。如果您将Apache Tomcat中的jsp-api.jar复制到webapp的/WEB-INF/lib文件夹中,并在完全不同的make/version的servletcontainer上运行webapp,则会发生这种情况。在您的具体情况下,其中一个库是旧版本,缺少异常消息提及的方法。

摆脱他们所有在/WEB-INF/lib。他们绝对不属于那里。它们应该由servletcontainer自己提供。如果你这样做是为了规避编译错误(这是启动者把它们放在错误位置的更常见的原因之一),那么它需要以不同的方式解决。

+0

就是这样,我的/ WEB-INF/lib中有一些不好的.jar。虽然我从来没有故意添加它们。 我最好的猜测是,当将Eclipse应用引擎工具指向SDK文件夹时,我一定犯了一个错误。 – 2011-04-19 19:20:19

+0

不客气。 – BalusC 2011-04-19 19:23:17

+0

哦,我得到了类似的东西,我不知道哪个罐子是错的... – tom 2014-01-20 12:25:02

3

这也发生在我身上。我在/ WEB-INF/lib目录中有gwt-dev.jar。它不应该在那里。