UserService not works with GaeStudio
Hello,
I'm tring to install GaeStudio. If a not login to my application, it's works fine. But when a login to the application. I can access to GaeStudio, and it's works fine, but my application not works now with an error in the UserServiceImpl :
java.lang.NoSuchMethodError: com.google.appengine.api.users.User.<init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
at com.google.appengine.api.users.UserServiceImpl.getCurrentUser(UserServiceImpl.java:107)
at cef.kephas.server.api.output.OutputAPIV2.getUser(OutputAPIV2.java:206)
at cef.kephas.server.api.output.OutputAPIV2.manageHTML(OutputAPIV2.java:140)
at cef.kephas.server.api.output.OutputAPIV2.output(OutputAPIV2.java:96)
at cef.kephas.server.EgliseInfoServlet.doGet(EgliseInfoServlet.java:121)
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.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:66)
at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:168)
at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:168)
at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:168)
at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:118)
at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at cef.kephas.server.filter.NamespaceFilter.doFilter(NamespaceFilter.java:36)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at com.googlecode.objectify.cache.AsyncCacheFilter.doFilter(AsyncCacheFilter.java:57)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at cef.kephas.server.filter.CORSFilter.doFilter(CORSFilter.java:49)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:125)
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.JdbcMySqlConnectionCleanupFilter.doFilter(JdbcMySqlConnectionCleanupFilter.java:60)
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:266)
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:146)
at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:446)
at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:437)
at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:444)
at com.google.tracing.CurrentContext.runInContext(CurrentContext.java:188)
at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:308)
at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:300)
at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:441)
at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:251)
at java.lang.Thread.run(Thread.java:724)
I use the federated user options in GAE.
Comments (21)
-
-
Thanks for reporting!
-
Hi Patrice!
What version of GAE Studio are you using? What version of App Engine is your app using?
From what I can see, the current User version of App Engine has a ctor with 4 Strings params ( https://developers.google.com/appengine/docs/java/javadoc/com/google/appengine/api/users/User#User(java.lang.String, java.lang.String, java.lang.String, java.lang.String) )
-
Hi,
I use the last GAE Studio : 0.7 GAE version : 1.8.8
-
We could try to see from which jar the
User
class is loaded.Try this (just before your call to
UserService.getCurrentUser()
:ClassLoader classLoader = User.class.getClassLoader(); System.out.println(classLoader.getResource("com/google/appengine/api/users/User.class"));
This will print the jar from which the
User
class was loaded. -
jar:file:/base/data/home/apps/s~egliseinfo-catholique-fr/gae-studio.373557782956034603/WEB-INF/lib/_ah_compiled_jsps-0000.jar!/com/google/appengine/api/users/User.class
-
Can you inspect the contents of that jar and confirm that the
User
class does not have the constructorUser(String, String, String, String)
? -
The "_ah_compiled_jsps-0000.jar" is a jar compiled in appengine. I can't access to online appengine files.
-
Okay, I thought you were experiencing this issue when running your app from your local machine. So if I'm understanding correctly, you're experiencing this issue with an app deployed on appspot, right?
-
Yes it's a deployed application and use the federated login option.
-
OK, I'll build a sample, deploy it to app engine and see what's going on.
-
I've deployed an app on appspot with GaeStudio installed in it, and I don't experience your problem. I don't get the
NoSuchMethodError
.In my instance, it says that the
User
class is loaded from theappengine-api.jar
:jar:file:/base/java7_runtime/api/appengine-api.jar!/com/google/appengine/api/users/User.class
I'm wondering why your app would load the
User
class from_ah_compiled_jsps-0000.jar
... -
Did your test application use federated login ? https://developers.google.com/appengine/articles/openid?hl=fr
-
We used the Users service https://developers.google.com/appengine/docs/java/users/
Is it different from what you're using?
-
The Four parameters User class :
User(java.lang.String email, java.lang.String authDomain, java.lang.String userId, java.lang.String federatedIdentity) Creates a new User with a federated identity.
Is used with the federated identity login, with this login option, you can login with open id provider. For this, you must implement the login page /_ah/login_required
-
Okay I see, I'll update my sample project with this ASAP, and I'll see if the federated login breaks anything on my side.
-
Account Deleted @patricedesaintsteban @spgingras Does it work fine now?
-
I haven't had the chance to test with federated login yet.
-
I haven't tested with the new version of GAEStudio yet
-
Account Deleted Please tell us when you will have had time to try it with 0.8.3 ;-)
-
Account Deleted - changed status to on hold
Unable to replicate for the moment.
- Log in to comment
Sorry i'm not logged before send the issue.