Lorsque j'essaie d'exécuter le code généré automatiquement dans mon projet d'application web Google à l'aide de GAE, le message d'erreur suivant s'affiche:
Mar 19, 2014 5:21:28 PM com.google.appengine.tools.development.agent.AppEngineDevAgent premain
SEVERE: Unable to load the App Engine dev agent. Security restrictions will not be completely emulated.
Java.lang.RuntimeException: Unexpected exception during cast.
at com.google.apphosting.utils.clearcast.ClearCast$CasterImpl.cast(ClearCast.Java:385)
at com.google.apphosting.utils.clearcast.ClearCast.staticCast(ClearCast.Java:252)
at com.google.apphosting.utils.clearcast.ClearCast.staticCast(ClearCast.Java:263)
at com.google.appengine.tools.development.agent.AppEngineDevAgent.premain(AppEngineDevAgent.Java:61)
at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at Sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at Sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at Java.lang.reflect.Method.invoke(Unknown Source)
at Sun.instrument.InstrumentationImpl.loadClassAndStartAgent(Unknown Source)
at Sun.instrument.InstrumentationImpl.loadClassAndCallPremain(Unknown Source)
Caused by: Java.lang.IllegalAccessException: Class com.google.apphosting.utils.clearcast.ClearCast$CasterImpl can not access a member of class com.google.appengine.tools.development.agent.$Proxy0 with modifiers "public"
at Sun.reflect.Reflection.ensureMemberAccess(Unknown Source)
at Java.lang.reflect.AccessibleObject.slowCheckMemberAccess(Unknown Source)
at Java.lang.reflect.AccessibleObject.checkAccess(Unknown Source)
at Java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.google.apphosting.utils.clearcast.ClearCast$CasterImpl.cast(ClearCast.Java:383)
... 9 more
Est-ce que quelqu'un a la moindre idée de comment résoudre ce problème?
Code:
@SuppressWarnings("serial")
public class Lab7Servlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
resp.setContentType("text/plain");
resp.getWriter().println("Hello, world");
}
}
iQue,
J'ai rencontré exactement le même problème et j'ai découvert que mon Eclipse utilisait JRE 8 (version 1.8). Je ne voulais pas cela, et quand je l'ai changé en 1.7, cela a résolu le problème.
Édition: Fenêtre -> Préférences -> Java -> JRE installés. Vérifié jre7 pour le rendre par défaut.
Remarque pertinente: Les instructions d'installation de App Engine indiquent qu'il faut utiliser la version 1.7 (mais ne dites pas que vous ne pouvez pas utiliser la version 1.8): https://developers.google.com/appengine/docs/Java/gettingstarted/installing
Avez-vous vérifié si App Engine SDK est présent sur votre projet?
Sinon, allez dans Fenêtre -> Préférences -> Google -> App Engine Et ajoutez-le.
Dans mon cas, en plus de ce qui est mentionné dans la réponse de Kevin, je devais également modifier la valeur de Java en 1.7 dans les configurations d'exécution.