Error after ant clean and build

HTTP ERROR 500 java.lang.RuntimeException: org.keyczar.exceptions.KeyczarException: Error reading file: WEB-INF/authkey/meta
URI: /login/google
STATUS: 500
MESSAGE: java.lang.RuntimeException: org.keyczar.exceptions.KeyczarException: Error reading file: WEB-INF/authkey/meta
SERVLET: LoginServlet
CAUSED BY: java.lang.RuntimeException: org.keyczar.exceptions.KeyczarException: Error reading file: WEB-INF/authkey/meta
CAUSED BY: org.keyczar.exceptions.KeyczarException: Error reading file: WEB-INF/authkey/meta
CAUSED BY: java.io.FileNotFoundException: WEB-INF/authkey/meta (No such file or directory)
Caused by:
java.lang.RuntimeException: org.keyczar.exceptions.KeyczarException: Error reading file: WEB-INF/authkey/meta
at com.google.appinventor.server.OdeAuthFilter$UserInfo.buildCookie(OdeAuthFilter.java:320)
at com.google.appinventor.server.LoginServlet.doGet(LoginServlet.java:135)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder$NotAsync.service(ServletHolder.java:1452)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:791)
at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1626)
at com.google.appengine.tools.development.ResponseRewriterFilter.doFilter(ResponseRewriterFilter.java:134)
at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
at com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:34)
at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:63)
at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:48)
at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
at com.google.appengine.tools.development.jetty9.StaticFileFilter.doFilter(StaticFileFilter.java:123)
at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
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.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
at com.google.appengine.tools.development.DevAppServerRequestLogFilter.doFilter(DevAppServerRequestLogFilter.java:28)
at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:201)
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:548)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:567)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1612)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1434)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1582)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1349)
at com.google.appengine.tools.development.jetty9.DevAppEngineWebAppContext.doScope(DevAppEngineWebAppContext.java:94)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
at com.google.appengine.tools.development.jetty9.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:610)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
at org.eclipse.jetty.server.Server.handle(Server.java:516)
at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383)
at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:556)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:273)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:375)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:773)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:905)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.keyczar.exceptions.KeyczarException: Error reading file: WEB-INF/authkey/meta
at org.keyczar.KeyczarFileReader.readFile(KeyczarFileReader.java:61)
at org.keyczar.KeyczarFileReader.getMetadata(KeyczarFileReader.java:50)
at org.keyczar.Keyczar.(Keyczar.java:81)
at org.keyczar.Keyczar.(Keyczar.java:115)
at org.keyczar.Encrypter.(Encrypter.java:76)
at org.keyczar.Crypter.(Crypter.java:70)
at com.google.appinventor.server.OdeAuthFilter.getCrypter(OdeAuthFilter.java:381)
at com.google.appinventor.server.OdeAuthFilter.access$000(OdeAuthFilter.java:50)
at com.google.appinventor.server.OdeAuthFilter$UserInfo.buildCookie(OdeAuthFilter.java:309)
... 63 more
Caused by: java.io.FileNotFoundException: WEB-INF/authkey/meta (No such file or directory)
at java.io.RandomAccessFile.open0(Native Method)
at java.io.RandomAccessFile.open(RandomAccessFile.java:316)
at java.io.RandomAccessFile.(RandomAccessFile.java:243)
at java.io.RandomAccessFile.(RandomAccessFile.java:124)
at org.keyczar.KeyczarFileReader.readFile(KeyczarFileReader.java:55)
... 71 more

run ant MakeAuthKey

I did it, but still same error is shown,
ant MakeAuthKey,
ant,
then command for running the main server

Do you see any warnings or errors in the output of the ant command. Based on the error, it seems like the auth key is not being copied to the right location in the build tree. You can also get more specific information if you cd appengine && ant -v InstallAuthKey.

No, there are no error warning shown in terminal...When I open localhost:8888, the above error is shown.. I tried this option, but it still shows the same error

1 Like

I have changed my localhost port from 8888 to 8887, now it is working. But, still I don't know the cause of the problem. Thanks for your help...

It sounds like you have another instance of the server running in another terminal window. Make sure you clean up your existing server before rebuilding. The old server was holding the handle to the old copy of the auth key and when you ran ant clean that was blown out and a new copy (of the exact same data) was put in its place. However, since the handle is always open the old instance of the server sees it as having gone away.

1 Like