Estoy intentando construir una aplicación de base de datos usando GWT 1.5.3. Yo uso anotaciones JPA con mis objetos. Parece que en modo alojado, RPC de GWT funciona bien. Pero cuando intento compilar mi aplicación usando GWT-compiler, obtengo errores como: "La importación javax.persistence no se puede resolver", "La entidad no se puede resolver a un tipo". toplink-essentials.jar ya está incluido en la ruta de mi proyecto. ¿Qué configuración más necesito para resolver este problema?GWT con JPA
Respuesta
Ok, he encontrado lo que faltaba. Necesitaba incluir jpa-annotations-source.jar en mi ruta de GWT-compilador en el script myapp-compile.cmd (o en el archivo de compilación de ant). Por cierto, ¿alguien puede decirme el origen de este archivo jpa-annotations-source.jar?
Debe incluir el código fuente para las anotaciones JPA en la ruta de compilación para su proyecto GWT. Vea aquí para más detalles:
http://code.google.com/p/google-web-toolkit/issues/detail?id=1830&can=1&q=jpa
Específicamente este archivo JAR que arreglar el problema:
El enlace ha cambiado a http: // google-web- toolkit.googlecode.com/issues/attachment?aid=1475633892125294312&name=jpa-annotations-source.jar&token=672fe08de2c4a90493f62b6daaf3ae1e. No debe depender de tal enlace ya que se regeneran periódicamente de forma dinámica. Debería google para "jpa-annotations-source.jar google-web-toolkit.googlecode.com/issues/attachment". –
Puede usar la biblioteca Gilead (http://sourceforge.net/projects/gilead/) para gestionar sin problemas las entidades JPA con GWT.
Saludos
También estoy trabajando con JPA < - transformación de datos> GWT etc.
En un esfuerzo por eliminar la capa DTO Solía Gilead también.
Mi objeción aquí es acerca de la traducción de javax.persistence. Para evitar esto, utilicé declaraciones de mapeo XML JPA (orm.xml)
El problema general de JPA y GWT es que GWT por sí mismo no admite clases de JPA sofisticadas, por lo que solo hace simples entidades persistentes POJO DTO que implementa el java.io.Serializable y tiene anotaciones de recursos JPA simples. Es necesario crear las clases de entidad en el ámbito de aplicación del cliente GWT o lo tiene bajo el paquete yourproject.client o añadirlos con
ruta de origen = "cliente"
trayectoriafuente = "folderOfYourEntities"
en el archivo YouProject.gwt.xml del proyecto GWT. Esto incluirá los objetos de entidad en el cliente GWT para que puedan usarlos también en el lado del cliente de la RPC. El DAO debe estar en el lado del servidor y puede contener todo lo que soporte su contenedor.
El problema que tiene ahora es que, al compilar, el compilador de GWT dice que no sabe cuáles son esas importaciones para las anotaciones JPA en las clases de entidad DTO. Es por eso que necesita la clase javax.persistence y los códigos fuente. La referencia jpa-annotation-source.jar de Rustmyself funciona. Son solo los archivos de clase compilados javax.persistence y los archivos de códigos fuente más un Persistence.gwt.xml. Es un módulo GWT simple para el paquete javax.persistence. Si sabe cómo hacer su propio módulo GWT, debería tener problemas para que todo esto funcione. Por cierto, la fuente oficial de Java EE se puede encontrar en la sección de construcción del sitio glassfish dev wiki.glassfish.java.net
Hay muchas otras soluciones que envuelven sus elegantes entidades PU a objetos simples usando proxy o para cargarlos perezosos en tiempo de ejecución. Funcionan, pero no son soluciones óptimas. La mejor práctica es hacer las cosas simples y robustas desde el principio teniendo entidades POJO JPA DTO en el contexto del cliente GWT y DAO completo en el servidor.
GWTPersistence Ejemplo
he añadido un ejemplo real de trabajo sobre cómo hacer GWT y JPA funcionan a la perfección. Es un proyecto de NetBean con códigos fuente y archivo de implementación. Ver GWTPersistence on NingZhang.info
¡Simplemente, guarde otra versión de sus Entidades pero sin las anotaciones!
Rebote en el comentario de sinérgica, ahora (de GWT 1.5) sólo tiene que añadir
<source path='javax.persistence'/>
a su Module.gwt.xml
- 1. GWT con JPA - ningún proveedor de persistencia
- 2. Cómo configurar Ext GWT con GWT Designer?
- 3. JPA - EmbeddedId con @ManytoOne
- 4. JDBCRealm con JPA
- 5. Actualización dinámica con JPA
- 6. Generar UUID con GWT
- 7. Usando Guava con GWT
- 8. Web-Worker con GWT
- 9. diseñador GWT no funciona con el proyecto Maven-GWT
- 10. ¿Cómo configurar Eclipselink con JPA?
- 11. JBoss 5.1: Hibernate con JPA
- 12. Protocolo de búferes con JPA
- 13. ¿Cómo lidiar con bloqueos (JPA)?
- 14. Seleccionar no entidades con JPA?
- 15. Diferencia entre gwt, gwt-rpc, ext-gwt, smart gwt
- 16. Problemas con GWT y Guava
- 17. ¿Cómo usar Django con GWT?
- 18. Descargar archivo dinámico con GWT
- 19. ¿GWT es compatible con php?
- 20. Parse json con gwt 2.0
- 21. Cliente de chat con GWT
- 22. Usando guayaba empaquetada con GWT
- 23. Problemas con GWT y Enum
- 24. GWT: UiBinder o GWT Designer?
- 25. Ext GWT vs GWT-EXT
- 26. GWT code O GWT Designer?
- 27. Migrar GWT 2.0.4 Proyecto de GWT 2.1.0
- 28. Hibernate Jpa Anotación: Problema con Id Embedded
- 29. Clase abstracta heredada con JPA (+ Hibernate)
- 30. No se puede configurar JPA con ehcache
Además, debería decir que en GWT 1.5 no es necesario incluir el jar anterior. En su lugar solo use el jar de producción como toplink-essentials.jar; por supuesto, pásalo a tu compilador GWT para que la compilación tenga éxito; y NO escriba en su app.gwt.xml –
synergetic