Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
[JERSEY-1872] 2.0-rc1 causes NoClassDefFoundError on Google App Engine Created: 20/Apr/13 Updated: 10/Sep/15 Resolved: 18/Jul/13 Status: Project: Component/s: Affects Version/s: Fix Version/s: Closed jersey None 2.0-rc1 Type: Reporter: Resolution: Labels: Remaining Estimate: Time Spent: Original Estimate: Environment: Bug stholzm Fixed None Not Specified 2.1 Priority: Assignee: Votes: Major Marek Potociar 0 Not Specified Not Specified Windows, Eclipse, Maven Description I cannot run 2.0-rc1 on GAE, whereas 2.0-m11 .. 2.0-m13-3 still work. When I try to access a @GET resource in the following error: java.lang.NoClassDefFoundError: Could not initialize class org.glassfish.jersey.server.internal.JerseyRequestTim at org.glassfish.jersey.servlet.internal.ResponseWriter.<init>(ResponseWriter.java:97) at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:297) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:372) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:335) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:218) 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.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:123) 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.DevAppServerServersFilter.doDirectRequest(DevAppServerServer at com.google.appengine.tools.development.DevAppServerServersFilter.doDirectServerRequest(DevAppServerSe at com.google.appengine.tools.development.DevAppServerServersFilter.doFilter(DevAppServerServersFilter.ja 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(DevAppEngineWebAppCo at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerServ 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) I'll try to attach a demo project to this issue, but here is what I did: Used Maven archetype jersey-quickstart-webapp (2.0-SNAPSHOT) Set <jersey.version>2.0-rc1</jersey.version> Added a dummy appengine-web.xml Added the GAE maven plugin: <plugin> <artifactId>maven-war-plugin</artifactId> <version>2.3</version> </plugin> <plugin> <groupId>com.google.appengine</groupId> <artifactId>appengine-maven-plugin</artifactId> <version>1.7.7</version> </plugin> ran it with: mvn clean install appengine:devserver After I just got an 404 error, I added: an Application class that added LoggingFilter the corresponding web.xml entry: <init-param> <param-name>javax.ws.rs.Application</param-name> <param-value>foo.App</param-value> </init-param> This produced the stacktrace above. The same demo project executed with the RunJettyRun Eclipse plugin works fine, by the way. Comments Comment by stholzm [ 20/Apr/13 ] I could not find a way to attach something to this issue. In that case, you can git clone git://github.com/stefanholzmueller/JERSEY-1872.git Comment by Marek Potociar [ 18/Jul/13 ] Should be fixed as part of the recent changes. Please check our early-access GAE integration module: https://github.com/jersey/jersey/tree/master/incubator/gae-integration Generated at Thu May 11 21:51:11 UTC 2017 using JIRA 6.2.3#6260sha1:63ef1d6dac3f4f4d7db4c1effd405ba38ccdc558.