Este es un problema que ya tengo atrapado durante varias horas y ahora me siento bastante desesperado. Migré nuestra aplicación de Spring 2.5/Hiberante 3.3 a Spring 3.0.5/Hibernate 3.6. se llevó a cabo la siguiente:Problema de Spring NamespaceHandler al iniciar la aplicación GWT basada en Maven desde Eclipse IDE después de la migración a Spring 3
- dependencias de primavera actualizados/versión (ahora hay algo más que un par de dependencias)
- dependencias Hibernate actualizados/Versión
- actualizados los archivos XML de contexto Primavera en términos de versiones de 'schemaLocation'
El error todavía tengo en el lanzamiento de Eclipse IDE después de diferentes arreglos y melodías de menor importancia, es la siguiente:
Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/tx]
Miré a través de los otros hilos, y me di cuenta de que tal problema surge cuando la lib específica (en este caso spring-tx) no se encuentra en classpath, pero la veo claramente en mis dependencias Maven.
La siguiente cosa que hice, lo construyó el GUERRA como lo hice por las versiones anteriores, desplegados en Tomcat, y la aplicación funcionó bien!
Con esto puedo llegar a la conclusión de que falta algo en la configuración del entorno Eclipse. Lo interesante de todas las quejas es sobre spring-tx, cuando eliminé la línea única utilizando el espacio de nombres tx <tx:annotation-driven transaction-manager="transactionManager" />
... la aplicación comenzó bien sin quejas sobre otros espacios de nombres (por supuesto, no funcionó bien, pero al menos había no se queja durante el init).
Algunos de resumen sobre mi configuración IDE/proyecto:
- inicio de la aplicación realizada por GWT .launch archivo (GWT ver 2.0.3)
- dentro de este archivo de inicio hay referencias a otros proyectos, incluyendo serverside que tiene dependencias de primavera
- de hecho, este proyecto GWT-cliente tiene serverside POM como padre, y como resultado Puedo ver todas las dependencias de la primavera en Maven dependencias de este proyecto
- proyecto GWT-cliente tiene/guerra/WEB- INF/applicationContext.xml que importa otros recursos contexto XML, que en realidad están utilizando la primavera-tx
La cuestión formal sería: ¿cuáles son las posibles razones por las que la puesta en marcha de proyectos de IDE se verán resultados con este tipo de errores después de migrar a la primavera 3x (y funciona bien desplegado como construido WAR)?
No espero respuestas directas (a menos que alguien tenga exactamente el mismo problema de entorno &), pero las pautas, consejos serían de gran ayuda.
EDITAR olvidó mencionar que durante el inicio de la aplicación del IDE, tengo montón de advertencias como éstas:
[WARN] Server class 'javax.persistence.EntityManagerFactory' could not be found in the web app, but was found on the system classpath
[WARN] Adding classpath entry 'file:/D:/maven/repository/org/hibernate/javax/persistence/hibernate-jpa-2.0-api/1.0.0.Final/hibernate-jpa-2.0-api-1.0.0.Final.jar' to the web app classpath for this session
[WARN] Server class 'org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor' could not be found in the web app, but was found on the system classpath
[WARN] Adding classpath entry 'file:/D:/maven/repository/org/springframework/spring-orm/3.0.5.RELEASE/spring-orm-3.0.5.RELEASE.jar' to the web app classpath for this session
..así que tal vez Spring-tx tampoco se encuentra en la aplicación web (y se encuentra en el classpath del sistema), pero no se agrega como lo que sucedió con los demás? ¿Cuál sería la razón de este comportamiento?
Encontré el siguiente hilo en GWT Google Group: http://groups.google.com/group/google-web-toolkit/browse_thread/thread/77f249648847d85d –
(.. continuando el comentario sin terminar previo que ya no puedo seguir) editar) Encontré el siguiente hilo en GWT Google Group: http://groups.google.com/group/google-web-toolkit/browse_thread/thread/77f249648847d85d, después de lo cual me di cuenta de que se puede aplicar la siguiente solución alternativa: copiar la primavera -tx-3.0.5.RELEASE.jar (que es mi caso) a/war/WEB-INF/lib. ¡Y funcionó bien! Pero todavía lo clasifico como una solución, y me gustaría saber cómo garantizar una resolución de ruta de clases consistente cuando ejecute la aplicación GWT basada en Maven desde IDE. –
Cuando compiló WAR y se implementó en Tomcat, ¿fue una compilación Maven o desde su IDE? Intente generar la GUERRA desde su IDE (clic derecho -> Exportar -> GUERRA). Luego descomprímalo o mira adentro usando, p. Ej. 7-Zip y ver si el contenedor Spring-Tx está en la guerra. Entonces sabemos que hay un problema con la configuración de Eclipse. Además, observe la configuración de ruta de compilación de su proyecto en Eclipse. ¿Hay Spring-Tx allí? ¿Maven generó sus archivos de proyecto Eclipse o lo hizo manualmente? Tal vez regenere los archivos del proyecto Eclipse con 'mvn eclipse: clean eclipse: eclipse'. –