28 votes

Pourquoi est-ce que j'obtiens l'erreur suivante lors de l'exécution de Google App à partir d'Eclipse?

J'ai fait une recherche et trouvé QuickTip: exception verifyerror avec jdk 7:

Si vous êtes aux prises avec le type suivant d'erreur

java.lang.VerifyError: Expecting a stackmap frame at branch target 6 bla bla bla …

ensuite, une solution simple est d'ajouter les éléments suivants par défaut de l'argument JVM -XX:-UseSplitVerifier

Si vous le faites dans eclipse, comme je l'étais, alors goto Fenêtre -> Préférences -> Installé Jre -> et ajouter le paramètre par défaut.

Qu'est-ce paramètre n'? Oracle juste mentionne que c'est un nouveau type de checker avec StackMapTable attributs. Hein! Profitez-en! Il est Oracle.

Cependant, quand je vais à la Installé Jre paramètres, dit - An error has occurred when creating this preference page

J'ai commencé à apprendre à propos de Google App Engine et a commencé avec Google CodeLabEx0, et je pense que ça a bien marché parce que j'ai vu sur mon navigateur ce que j'étais censé le voir. Mais quand j'ai déménagé sur le deuxième chapitre CodeLabEx1, il y a une erreur qui ne me permet pas de créer des produits ou des articles par le biais de l'interface du navigateur. Puis j'ai regardé l'éclipse de la console et vu ceci:

Oct 28, 2011 11:40:30 PM com.google.apphosting.utils.jetty.JettyLogger info
INFO: Logging to JettyLogger(null) via com.google.apphosting.utils.jetty.JettyLogger
Oct 28, 2011 11:40:31 PM com.google.apphosting.utils.config.AppEngineWebXmlReader readAppEngineWebXml
INFO: Successfully processed C:\Users\rock84\Downloads\CodeLabEx1\CodeLabEx1\war\WEB-INF/appengine-web.xml
Oct 28, 2011 11:40:31 PM com.google.apphosting.utils.config.AbstractConfigXmlReader readConfigXml
INFO: Successfully processed C:\Users\rock84\Downloads\CodeLabEx1\CodeLabEx1\war\WEB-INF/web.xml
Oct 28, 2011 4:40:31 PM com.google.appengine.tools.development.DevAppServerImpl start
INFO: The server is running at http://localhost:8888/
Oct 28, 2011 11:40:59 PM com.google.apphosting.utils.jetty.JettyLogger warn
WARNING: Error for /product
java.lang.VerifyError: Expecting a stackmap frame at branch target 48 in method com.google.appengine.codelab.ProductServlet.doPut(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V at offset 38
    at java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
    at java.lang.Class.getConstructor0(Unknown Source)
    at java.lang.Class.newInstance0(Unknown Source)
    at java.lang.Class.newInstance(Unknown Source)
    at org.mortbay.jetty.servlet.Holder.newInstance(Holder.java:153)
    at org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:428)
    at org.mortbay.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:339)
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
    at com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:35)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:58)
    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:122)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.tools.development.BackendServersFilter.doFilter(BackendServersFilter.java:97)
    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.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:70)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:351)
    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)

Je n'ai aucune idée de ce que cela pourrait être. C'est une nouvelle installation d'Eclipse 3.7 avec les logiciels suivants:

  • Eclipse IDE pour Développeurs Java
  • Google App Engine SDK Java 1.5.5
  • Gooogle Plugin pour Eclipse 3.7
  • Google Web Toolkit SDK 2.4.0

Je suis sur Windows 7 64 bits avec la version Java 1.7.0

30voto

Francisco Bárcena Points 540

Ok, j'ai trouvé la solution. C'est ce que j'ai écrit au dessus. En fait, j'ai l'ajout de l'argument de la mauvaise eclipse installation. Il fonctionne maintenant.

"Si vous êtes aux prises avec le type suivant d'erreur java.lang.Exception verifyerror: Attend un stackmap cadre à la direction de la cible 6 bla bla bla .... ensuite, une solution simple est d'ajouter les éléments suivants JVM par défaut de l'argument-XX:-UseSplitVerifier Si vous le faites dans eclipse, comme je l'étais, alors goto Fenêtre -> Préférences -> Installé Jre -> et ajouter le paramètre par défaut. Qu'est-ce paramètre n'? Oracle juste mentionne que c'est un nouveau type de checker avec StackMapTable attributs. Hein! Profitez-en! Il est Oracle." Grâce à ce mec: http://vikashazrati.wordpress.com/2011/10/09/quicktip-verifyerror-with-jdk-7/

7voto

Boude Points 355

Ceci est également possible en modifiant votre configuration d'exécution: Exécuter> Configurations d'exécution

Choisissez votre projet d'application Web dans la gauche, ouvrez l'onglet Arguments et ajoutez l'argument -XX: -UseSplitVerifier aux arguments de la machine virtuelle.

Les avantages de cette approche sont également ses inconvénients: elle ne s'applique qu'à ce projet, au lieu d'une installation de VM entière.

2voto

Radek S Points 445

J'ai eu un problème similaire lors du déploiement de mon application GWT dans GAE et j'utilisais JDK 7. Passer le projet en JDK 6 a résolu ce problème (j'ai oublié qu'à ce moment, seuls JDK 5 et 6 sont pris en charge par GAE).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X