studio programacion para móviles libro edición desarrollo curso aplicaciones java eclipse google-app-engine

java - para - manual de programacion android pdf



¿Por qué recibo el siguiente error al ejecutar Google App desde eclipse? (3)

Esto también es posible cambiando la configuración de ejecución: Ejecutar> Ejecutar configuraciones

Elija su proyecto de aplicación web desde la izquierda, abra la pestaña Argumentos y agregue el argumento -XX: -UseSplitVerifier a los argumentos de VM.

Los beneficios de este enfoque también son sus inconvenientes: solo se aplica a este proyecto, en lugar de a toda una instalación de VM.

Hice una búsqueda y encontré QuickTip: VerifyError con jdk 7 :

Si estás luchando con el siguiente tipo de error

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

luego, una solución simple es agregar el siguiente argumento JVM predeterminado -XX:-UseSplitVerifier

Si lo haces en eclipse, como yo, entonces ve a Ventana -> Preferencias -> JRE instalados -> y agrega el parámetro predeterminado.

¿Qué hace esta configuración? Oracle solo lo menciona como un nuevo verificador de tipos con atributos StackMapTable. Huh! ¡Disfrutar! Es Oracle ahora.

Sin embargo, cuando voy a la configuración de los JRE instalados, aparece An error has occurred when creating this preference page

Empecé a aprender sobre Google App Engine y comencé con CodeLabEx0 de Google, y creo que funcionó bien porque vi en mi navegador lo que se suponía que debía ver. Pero cuando pasé al segundo capítulo CodeLabEx1, hay un error que no me permite crear ningún producto o artículo a través de la interfaz del navegador. Luego miré la consola del eclipse y vi esto:

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)

No tengo idea de lo que podría ser esto. Esta es una nueva instalación de Eclipse 3.7 con el siguiente software instalado:

  • Eclipse IDE para desarrolladores de Java
  • Google App Engine Java SDK 1.5.5
  • Complemento de Gooogle para Eclipse 3.7
  • Google Web Toolkit SDK 2.4.0

Estoy en Windows 7 de 64 bits con Java versión 1.7.0


Ok, encontré la solución. Es lo que escribí en la parte superior. Resulta que estaba agregando el argumento a la instalación de eclipse incorrecta. Ahora funciona.

"Si está luchando con el siguiente tipo de error java.lang.VerifyError: Esperando un marco de mapa de distribución en el destino de la sucursal 6 bla bla bla .... Entonces una solución simple es agregar el siguiente argumento JVM predeterminado -XX: -UseSplitVerifier Si usted está hacerlo en eclipse, como yo estaba, luego ir a Ventana -> Preferencias -> JRE instalados -> y agregar el parámetro predeterminado. ¿Qué hace esta configuración? Oracle solo lo menciona como un nuevo verificador de tipos con atributos de StackMapTable. ¡Eh! ¡Disfruta! Ahora es Oracle ". Gracias a este tipo: http://vikashazrati.wordpress.com/2011/10/09/quicktip-verifyerror-with-jdk-7/


Tuve un problema similar cuando implementé mi aplicación GWT en GAE y estaba usando JDK 7. Cambiar el proyecto a JDK 6 resolvió ese problema (olvidé que en este momento solo GAE 5 y 6 son compatibles con JDK).