2011-02-15 21 views
12

He intentado integrar Spring (3.0.4 y 3.0.5) MVC con Apache Tiles (2.1.2,2.1.4 y 2.2.2) sin éxito. En todos los casos me sale el siguiente error:Spring 3 MVC y Apache Tiles 2 Error de integración

java.lang.NoClassDefFoundError: org/apache/azulejos/inicio/BasicTilesInitializer

De acuerdo con la documentación Azulejos, BasicTilesInitializer ya no se utiliza. Pensé que la última versión de Spring TilesConfigurer haría referencia a la clase correcta, pero no lo hace y sigo teniendo el mismo error.

estoy usando la siguiente configuración con Azulejos de configuración en mi primavera aplicación MVC:

<beans:bean 
    id="tilesConfigurer" 
    class="org.springframework.web.servlet.view.tiles2.TilesConfigurer"> 
    <beans:property name="definitions"> 
     <beans:list> 
      <beans:value>/WEB-INF/tiles/tiles.xml</beans:value> 
     </beans:list> 
    </beans:property> 
</beans:bean> 

<beans:bean 
    class="org.springframework.web.servlet.view.tiles2.TilesViewResolver">  
    <beans:property 
     name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView"/>     
</beans:bean> 

Idealmente, me gustaría llegar la primavera 3.0.5 trabajar con azulejos 2.2.2. Son las últimas versiones de esta publicación.

Respuesta

10

org.apache.tiles.startup.BasicTilesInitializer es una clase de tiles-core(2.2.1).jar. Compruebe que ha desplegado el jar tiles-core

+0

azulejos núcleos, pero eso no resuelve el problema –

+0

@Athens, has comprobado que la clase está en el frasco? ¿Y comprobó que el contenedor está realmente implementado en su servidor de aplicaciones? – Ralph

+0

Estoy usando SpringSource Tools Suite y puedo ver la clase cuando inspecciono el contenedor al que se hace referencia. No estoy implementando en un servidor remoto. Aparece el error cuando ejecuto la aplicación en modo de depuración a través de Depurar como-> Depurar en el servidor. ¿Crees que esto es un problema de configuración? ¿Tiles 2.2.2 es compatible con Spring 3? De acuerdo con la documentación de Spring's TilesConfigurer (http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/web/servlet/view/tiles2/TilesConfigurer.html), lo es. Simplemente no he tenido éxito con eso. –

0

Si está utilizando STS y creó su proyecto utilizando un proyecto de plantilla de resorte (como el MVC uno), entonces no agrega nada al directorio lib. En su lugar, modifica el archivo de configuración pom.xml maven.

8

Si está utilizando Maven entonces usted puede agregar esta dependencia con el fin de resolver el problema:

<dependency> 
    <groupId>org.apache.tiles</groupId> 
    <artifactId>tiles-servlet</artifactId> 
    <version>2.2.2</version> 
</dependency> 
19

Para las baldosas 3, clase de uso org.springframework.web.servlet.view.tiles3.TilesConfigurer. Asegúrate de tener eso en spring webmvc.

1

No voy a pedir disculpas por revivir un hilo obsoleto.

Tengo un proyecto Spring MVC construido en Eclipse Helios.
Apagué Helios durante unos días y luego volví a abrirlo hoy. Cuando ejecuté mi aplicación, obtuve la misma excepción que la anterior: java.lang.NoClassDefFoundError: org/apache/tiles/startup/BasicTilesInitializer.

Mi solución fue limpiar el directorio de implementación en el servidor Tomcat integrado, luego volver a implementar la aplicación. La primera vez que volví a redistribuir, el directorio de lib de mi aplicación mostraba solo dos jarras. Así que después de limpiar y volver a implementarlo, obtuvo todos los jar necesarios y ahora mi aplicación se ejecuta nuevamente. Imagínate.

0

sólo podía resolver esto después añadí la dependencia que debe facilitarse en tiempo de compilación en mi POM

<scope>compile</scope> 
0

que estaba teniendo el mismo problema, el uso de la versión 2.2.2 de las baldosas. Cambié a la versión 2.2.1 y comenzó a funcionar.Aquí están mis dependencias:

<dependency> 
     <groupId>org.apache.tiles</groupId> 
     <artifactId>tiles-jsp</artifactId> 
     <version>2.2.1</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.tiles</groupId> 
     <artifactId>tiles-core</artifactId> 
     <version>2.2.1</version> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.tiles</groupId> 
     <artifactId>tiles-api</artifactId> 
     <version>2.2.1</version> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.tiles</groupId> 
     <artifactId>tiles-servlet</artifactId> 
     <version>2.2.1</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.tiles</groupId> 
     <artifactId>tiles-template</artifactId> 
     <version>2.2.1</version> 
    </dependency> 
0

Compruebe si los frascos están en la aplicación de la clase de la ruta:

  1. Commons-BeanUtils
  2. Commons-digestor
  3. log4j
  4. slf4j-api
  5. slf4j-log4j12
  6. losetas-api
  7. azulejos-núcleo
  8. azulejos-JSP
  9. azulejos-servlet
  10. azulejos-plantilla

Versión de azulejos tarros es depende de la versión de Spring MVC. P.ej. Si se usa Spring MVC 3.2.3 (org.springframework.web.servlet.view.tiles3.TilesConfigurer), se requieren 3 jarras.

0

Para las baldosas 3, se debe añadir se hace referencia a

tiles-request.jar, commons-digester.jar