2010-10-14 12 views
7

primer eclipse:Eclipse Google -App -Motor "no va a Mejorar"

no puede deshacerse de este error ... intentado cada solución sugerida en google ..

clase persistente "clase COM .blahb.blahblah.master.UserToken no parece haber sido mejorado. Es posible que desee volver a ejecutar el potenciador y comprobar si hay errores en la salida ". no tiene tabla en la base de datos, pero la operación lo requiere. Por favor, compruebe la especificación de los metadatos para esta clase.

List of 500 lines of exceptions... 
*Caused by: 
javax.jdo.JDOUserException: Persistent class "Class com.blahb.blahblah.master.UserToken does not seem to have been enhanced. You may want to rerun the enhancer and check for errors in the output." has no table in the database, but the operation requires it. Please check the specification of the MetaData for this class. 
    at org.datanucleus.jdo.NucleusJDOHelper.getJDOExceptionForNucleusException(NucleusJDOHelper.java:375) 
    at org.datanucleus.jdo.JDOQuery.execute(JDOQuery.java:230) 
    at com.gulfnet.gulfstar.master.Master.getUserToken(Master.java:645) 
    at org.apache.jsp.top_jsp._jspService(top_jsp.java:68) 
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:806) 
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324) 
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292) 
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236) 
    at com.google.appengine.tools.development.PrivilegedJspServlet.access$101(PrivilegedJspServlet* 

Mi compañero de trabajo tiene este mismo proyecto en su PC con Windows y funciona muy bien ...

que he probado tres Linux, Mac, ventanas, 3 versiones diferentes de PC diferentes eclipse, 20 diferentes formas de importar, crear un nuevo proyecto, etc. ...

Sí, el .classpath se corrigió para reflejar la ubicación correcta de todos los archivos jar. He intentado agregar cada clase, java, jar como se sugiere en uno de los blogs de google a la clase/buildpath (ventana -> pref -> google -> orm) nada ...

Y dónde está esta maldita "Consola Enhancer" que se supone que debe estar en Eclipse ...? Estoy ejecutando el último Eclipse, con TODOS los complementos de Google-app-engine ..

¿Alguna idea ...? Nadie..?

¡Gracias!

Respuesta

1

Hemos editado el [Proyecto> propiedades> Google> App Engine> ORM] página para quitar el src/ y sólo mejorar un subconjunto de las clases (src/com/vo/ .java *, src ?/com/espalda/ y res/) como se explica en: datanucleus enhancer & javaw: "the parameter is incorrect"

también copiamos el Google | App Engine a una trayectoria más corta, como se explica a continuación trabajado para nosotros: http://code.google.com/p/google-web-toolkit/issues/detail?id=4395#c15

0

que tenía t él mismo error y en mi caso apenas solución fue hacer clase no persistente comentando esta línea:

@PersistenceCapable(identityType = IdentityType.APPLICATION) 

A continuación, ejecute mi solicitud y obtener un error acerca de la persistencia, detenerlo, línea anterior uncomment y ejecutar la aplicación de nuevo.

0

Este problema fue resuelto por mí mediante la adición de una clave principal, así:

@PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) private Long id;

1

Haga clic derecho sobre el proyecto, a continuación, en Propiedades> Constructores. ¿Hay algún punto como "Missing Builder (org.datanucleus.ide.eclipse.enhancerbuilder)"?

Si crea un nuevo proyecto de aplicación web, asegurándose de que "el uso de Google Web Toolkit" y "El uso de Google App Engine" estén marcadas, y luego mirar de nuevo en Propiedades> Constructores, lo hace luego decir "reforzador" allí en lugar de "generador faltante"?

En caso afirmativo, una solución segura es crear un nuevo proyecto desde cero y luego transferir manualmente el contenido del proyecto anterior al nuevo. Simplemente la importación del proyecto anterior en otro Eclipse no funciona, el enhancer aún no estará allí.

3

El problema es que el Enhancer para DataNucleus se elimina de la lista de constructores del proyecto. Para mí todo el Proyecto Limpio, reconstruido, etc. no ayudó. Lo que hay que hacer es (1) Crear nuevo proyecto GAE muestra, abra el archivo ".project" de ese proyecto en el editor de texto plano, copia este texto a partir de ahí:

<buildCommand> 
    <name>com.google.appengine.eclipse.core.enhancerbuilder</name> 
    <arguments></arguments> 
</buildCommand> 

Ahora Copia esto en la parte inferior de la lista de constructores en su propio archivo .project. Ahora DataNucleus debería funcionar bien. No tengo idea de por qué a veces desaparece.

1

Actualizando a la última versión de appengine java sdk lo resolvió para mí.

1

Cambiar la versión de SDK funcionó para mí.

Curiosamente, ya estaba usando la última versión. Volver a la versión anterior era la única forma en que podía activar el paso 'mejorar'. Esto fue con un script de compilación gradle.

Cuestiones relacionadas