AppEngine - Unable to compile class for JSP

69 views
Skip to first unread message

Noobgineer via StackOverflow

unread,
May 19, 2016, 1:06:04 PM5/19/16
to google-appengin...@googlegroups.com

I am using a tutorial for creating a guestbook web application and whenever i try to connect to localhost:8080, i get the following error:

  HTTP ERROR 500

Problem accessing /. Reason:

    Unable to compile class for JSP: 

An error occurred at line: 1 in the generated java file
The type java.io.ObjectInputStream cannot be resolved. It is indirectly referenced from required .class files

Stacktrace:
Caused by:

org.apache.jasper.JasperException: Unable to compile class for JSP: 

An error occurred at line: 1 in the generated java file
The type java.io.ObjectInputStream cannot be resolved. It is indirectly referenced from required .class files

Stacktrace:
    at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
    at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
    at org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:439)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:349)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:327)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:314)
    at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    at com.google.appengine.tools.development.PrivilegedJspServlet.access$101(PrivilegedJspServlet.java:23)
    at com.google.appengine.tools.development.PrivilegedJspServlet$2.run(PrivilegedJspServlet.java:61)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.google.appengine.tools.development.PrivilegedJspServlet.service(PrivilegedJspServlet.java:58)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
    at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:63)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectRequest(DevAppServerModulesFilter.java:366)
    at com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectModuleRequest(DevAppServerModulesFilter.java:349)
    at com.google.appengine.tools.development.DevAppServerModulesFilter.doFilter(DevAppServerModulesFilter.java:116)
    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.appengine.tools.development.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:98)
    at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:327)
    at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126)
    at com.google.appengine.tools.development.StaticFileUtils.serveWelcomeFileAsForward(StaticFileUtils.java:82)
    at com.google.appengine.tools.development.LocalResourceFileServlet.maybeServeWelcomeFile(LocalResourceFileServlet.java:260)
    at com.google.appengine.tools.development.LocalResourceFileServlet.doGet(LocalResourceFileServlet.java:120)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
    at com.googlecode.objectify.cache.AsyncCacheFilter.doFilter(AsyncCacheFilter.java:59)
    at com.googlecode.objectify.ObjectifyFilter.doFilter(ObjectifyFilter.java:49)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.api.socket.dev.DevSocketFilter.doFilter(DevSocketFilter.java:74)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.tools.development.ResponseRewriterFilter.doFilter(ResponseRewriterFilter.java:127)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:34)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:63)
    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 com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:125)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectRequest(DevAppServerModulesFilter.java:366)
    at com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectModuleRequest(DevAppServerModulesFilter.java:349)
    at com.google.appengine.tools.development.DevAppServerModulesFilter.doFilter(DevAppServerModulesFilter.java:116)
    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.appengine.tools.development.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:98)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:502)
    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 org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547)
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
    at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)

Im using Apache Maven version 3.3.9 with jdk1.8.0_92. I am able to do mvn appengine:devserver successfully and it says the Dev App Server is now Running. I've seen related questions that involve Tomcat and but they havent been very helpful. Im kind of stuck on what to do and am not too familiar with this process since im following a tutorial. Any ideas on what i can do to fix this? Here is the link to what i am trying (note it is an old link that has been archived).



Please DO NOT REPLY directly to this email but go to StackOverflow:
http://stackoverflow.com/questions/37315698/appengine-unable-to-compile-class-for-jsp

Martijn Dirkse via StackOverflow

unread,
May 19, 2016, 1:06:06 PM5/19/16
to google-appengin...@googlegroups.com

I am having the same problem, but I have an observation that may contribute to solving this. This morning I built the guestbook project using a Maven archetype: mvn archetype:generate -Dappengine-version=1.9.37 .... Immediately after creating the project this way, the following worked: mvn appengine:devserver Jetty started up and I could access the guestbook application in my browser.

After this initial success I tried to get it working within Eclipse. While doing this, I also discovered that I was using different JDK versions simultaneously and I tried corrected this. I had no success with Eclipse. After that I tried to return to mvn appengine:devserver. Only then I had the problem as described above.

I tried erasing the .m2 directory where Maven stores the dependencies it downloads. I also tried to build a fresh copy using mvn archetype:generate .... These actions did not help.

I am using JDK 1.8.0_91 and Maven 3.3.3



Please DO NOT REPLY directly to this email but go to StackOverflow:
http://stackoverflow.com/questions/37315698/appengine-unable-to-compile-class-for-jsp/37329803#37329803

Martijn Dirkse via StackOverflow

unread,
May 19, 2016, 6:36:04 PM5/19/16
to google-appengin...@googlegroups.com

I am having the same problem, but I have an observation that may contribute to solving this. This morning I built the guestbook project using a Maven archetype: mvn archetype:generate -Dappengine-version=1.9.37 .... Immediately after creating the project this way, the following worked: mvn appengine:devserver Jetty started up and I could access the guestbook application in my browser.

After this initial success I tried to get it working within Eclipse. While doing this, I also discovered that I was using different JDK versions simultaneously and I tried corrected this. I had no success with Eclipse. After that I tried to return to mvn appengine:devserver. Only then I had the problem as described above.

I tried erasing the .m2 directory where Maven stores the dependencies it downloads. I also tried to build a fresh copy using mvn archetype:generate .... These actions did not help.

I have the following classpath:

[INFO] mei 20, 2016 12:01:11 AM org.apache.jasper.compiler.JspRuntimeContext initClassPath
[INFO] FINE: Compilation classpath initialized: 
/C:/work/Bitbucket/MessageApp3/target/MessageApp3-1.0-SNAPSHOT/WEB-INF/classes/;
/C:/work/Bitbucket/MessageApp3/target/MessageApp3-1.0-SNAPSHOT/WEB-INF/lib/appengine-api-1.0-sdk-1.9.37.jar;
/C:/Users/ABB/.m2/repository/com/google/appengine/appengine-java-sdk/1.9.37/appengine-java-sdk/appengine-java-sdk-1.9.37/lib/impl/agent/appengine-agentruntime.jar;
/C:/work/Bitbucket/MessageApp3/target/MessageApp3-1.0-SNAPSHOT/WEB-INF/lib/guava-18.0.jar;
/C:/work/Bitbucket/MessageApp3/target/MessageApp3-1.0-SNAPSHOT/WEB-INF/lib/jstl-1.2.jar;
/C:/work/Bitbucket/MessageApp3/target/MessageApp3-1.0-SNAPSHOT/WEB-INF/lib/objectify-5.1.5.jar;
/C:/Users/ABB/.m2/repository/com/google/appengine/appengine-java-sdk/1.9.37/appengine-java-sdk/appengine-java-sdk-1.9.37/lib/tools/jsp/repackaged-appengine-jakarta-jstl-1.1.2.jar;
/C:/Users/ABB/.m2/repository/com/google/appengine/appengine-java-sdk/1.9.37/appengine-java-sdk/appengine-java-sdk-1.9.37/lib/tools/jsp/repackaged-appengine-jakarta-standard-1.1.2.jar;
/C:/Users/ABB/.m2/repository/com/google/appengine/appengine-java-sdk/1.9.37/appengine-java-sdk/appengine-java-sdk-1.9.37/lib/tools/jsp/repackaged-appengine-jasper-jdt-6.0.29.jar;
/C:/Users/ABB/.m2/repository/com/google/appengine/appengine-java-sdk/1.9.37/appengine-java-sdk/appengine-java-sdk-1.9.37/lib/opt/tools/appengine-local-endpoints/v1/appengine-local-endpoints.jar;
C:\Users\ABB\AppData\Local\Temp\Jetty_127_0_0_1_8080_MessageApp3.1.0.SNAPSHOT____1qwjqs\jsp;
C:\Users\ABB\.m2\repository\com\google\appengine\appengine-java-sdk\1.9.37\appengine-java-sdk\appengine-java-sdk-1.9.37\lib\shared\appengine-local-runtime-shared.jar;
C:\Users\ABB\.m2\repository\com\google\appengine\appengine-java-sdk\1.9.37\appengine-java-sdk\appengine-java-sdk-1.9.37\lib\shared\el-api.jar;
C:\Users\ABB\.m2\repository\com\google\appengine\appengine-java-sdk\1.9.37\appengine-java-sdk\appengine-java-sdk-1.9.37\lib\shared\jsp\repackaged-appengine-ant-1.7.1.jar;
C:\Users\ABB\.m2\repository\com\google\appengine\appengine-java-sdk\1.9.37\appengine-java-sdk\appengine-java-sdk-1.9.37\lib\shared\jsp\repackaged-appengine-ant-launcher-1.7.1.jar;
C:\Users\ABB\.m2\repository\com\google\appengine\appengine-java-sdk\1.9.37\appengine-java-sdk\appengine-java-sdk-1.9.37\lib\shared\jsp\repackaged-appengine-jasper-6.0.29.jar;
C:\Users\ABB\.m2\repository\com\google\appengine\appengine-java-sdk\1.9.37\appengine-java-sdk\appengine-java-sdk-1.9.37\lib\shared\jsp\repackaged-appengine-jasper-el-6.0.29.jar;
C:\Users\ABB\.m2\repository\com\google\appengine\appengine-java-sdk\1.9.37\appengine-java-sdk\appengine-java-sdk-1.9.37\lib\shared\jsp\repackaged-appengine-tomcat-juli-6.0.29.jar;
C:\Users\ABB\.m2\repository\com\google\appengine\appengine-java-sdk\1.9.37\appengine-java-sdk\appengine-java-sdk-1.9.37\lib\shared\jsp-api.jar;
C:\Users\ABB\.m2\repository\com\google\appengine\appengine-java-sdk\1.9.37\appengine-java-sdk\appengine-java-sdk-1.9.37\lib\shared\servlet-api.jar;
C:\work\Bitbucket\MessageApp3\target\MessageApp3-1.0-SNAPSHOT\classes;
[INFO] mei 20, 2016 12:01:11 AM org.apache.jasper.servlet.JspServlet init
[INFO] FINE: Scratch dir for the JSP engine is: C:\Users\ABB\AppData\Local\Temp\Jetty_127_0_0_1_8080_MessageApp3.1.0.SNAPSHOT____1qwjqs\jsp

i88.ca via StackOverflow

unread,
May 21, 2016, 2:06:10 PM5/21/16
to google-appengin...@googlegroups.com

I have exactly the same problem as you. For me, after I changed the JDK from 1.8 to 1.7, the problem disappeared. ( the compile level is 1.7 when using jdk 1.8 ). I don't know if it helps you.



Please DO NOT REPLY directly to this email but go to StackOverflow:
http://stackoverflow.com/questions/37315698/appengine-unable-to-compile-class-for-jsp/37354604#37354604

Martijn Dirkse via StackOverflow

unread,
May 30, 2016, 2:18:08 AM5/30/16
to google-appengin...@googlegroups.com

EDIT: When I wrote the above, I was developing under Windows. On May 28 2016 I installed Ubuntu 14 on a 32-bit laptop. Using the answer of i88.ca, I got it to work.



Please DO NOT REPLY directly to this email but go to StackOverflow:
http://stackoverflow.com/questions/37315698/appengine-unable-to-compile-class-for-jsp/37329803#37329803

Constantin Zagorsky via StackOverflow

unread,
May 31, 2016, 1:43:08 AM5/31/16
to google-appengin...@googlegroups.com

I had the same problem as you and none of the answers helped me so here is my solution. This solution can be a general approach on how to run tutorials for Google AppEngine that worked on JDK 7 to work same way on Java 8. Also note that Google Cloud SDK and Google Cloud Platform are two different installations. Also I used Windows 10 x64 during experiment just for info.

This issue is very similar to - link as you mentioned, but in this case your Jetty server version doesn't support JDK 8. There is a Google tutorial regarding this - link . First I tried Jetty 6.1.x to experience the same problem you did to witness that Jetty server version doesn't support JDK 8(default AppEngine Dev config from Intellij 2016.1.2). Later I've tried Jetty 9.3.x and it worked correctly with JDK 8. Though now when I use Jetty server 9.3 I don't use appengine:devserver that emulates Users and Datastore APIs for tutorial to work. So I switched to emulators provided by gcloud - link, but gcloud is currently missing Users API emulator that is used in tutorial, but provided by appengine:devserver. Funny thing is that when I started to re-implement the tutorial, I found that other developers already did that - link.

Here is how you run the Guestbook tutorial(originally intended for JDK 7) with Maven 3.3.9, JDK 8, Jetty 9.3 and gcloud emulators

  1. [Optional] Correct issue with windows registry - link
  2. Install Python 2.7 - link
  3. Install Google Cloud Platform - link . Enable beta features during install.
  4. Complete this tutorial that is the same Guestbook app but implemented correctly for Java 8 support - Updated Guestbook tutorial

Conclusion

Look for updated tutorials on github if they are missing on https://cloud.google.com/appengine/docs



Please DO NOT REPLY directly to this email but go to StackOverflow:
http://stackoverflow.com/questions/37315698/appengine-unable-to-compile-class-for-jsp/37536009#37536009
Reply all
Reply to author
Forward
0 new messages