tutorial mvc mundo hola example ejemplo java spring spring-mvc tomcat7

java - mvc - INFORMACIÓN: No se detectaron tipos de Spring WebApplicationInitializer en classpath



spring mvc java (9)

Asegúrese de que su log4j esté configurado correctamente, probablemente haya una excepción lanzada, pero solo verá la mitad de la imagen.

Por favor, consulte https://stackoverflow.com/a/16817018/1249304

Tengo un proyecto de primavera que funciona bien en mi servidor tomcat7 cuando implemento desde eclipse: Ejecutar como >> Ejecutar en el servidor. En la pestaña de eclipse "Servidores" veo:

Servers Tomcat v7.0 Server at localhost [Started, Synchronized] my_project [Synchronized] spring-web-3.2.4-RELEASE.jar

Mi proyecto:

  • no usa web.xml, utilizo javaconf @ annotations.
  • no usa maven, utilizo una biblioteca de usuario

Veo que el proyecto está en:

/srv/applications/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0

Y, también veo las carpetas: conf, logs, temp, webapps, work, wtpwebapps

¡Confirmo que todo funciona bien en mi servidor tomcat7 cuando despliegue desde eclipse!

En la consola eclipse consigo:

Apr 08, 2014 3:26:59 PM org.apache.tomcat.util.digester.SetPropertiesRule begin WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property ''source'' to ''org.eclipse.jst.j2ee.server:my_project'' did not find a matching property. Apr 08, 2014 3:27:00 PM org.apache.coyote.AbstractProtocol init INFO: Initializing ProtocolHandler ["http-bio-8888"] Apr 08, 2014 3:27:00 PM org.apache.coyote.AbstractProtocol init INFO: Initializing ProtocolHandler ["http-bio-8843"] Apr 08, 2014 3:27:01 PM org.apache.catalina.startup.Catalina load INFO: Initialization processed in 3215 ms Apr 08, 2014 3:27:01 PM org.apache.catalina.core.StandardService startInternal INFO: Starting service Catalina Apr 08, 2014 3:27:01 PM org.apache.catalina.core.StandardEngine startInternal INFO: Starting Servlet Engine: Apache Tomcat/7.0.26 Apr 08, 2014 3:27:11 PM org.apache.catalina.core.ApplicationContext log INFO: Spring WebApplicationInitializers detected on classpath: [my_project.web.context.WebApplicationInitializer@3599e94c] Apr 08, 2014 3:27:12 PM org.apache.catalina.core.ApplicationContext log INFO: Initializing Spring root WebApplicationContext Apr 08, 2014 3:27:24 PM org.apache.catalina.core.ApplicationContext log INFO: Initializing Spring FrameworkServlet ''dispatcher'' Apr 08, 2014 3:27:24 PM org.apache.coyote.AbstractProtocol start INFO: Starting ProtocolHandler ["http-bio-8888"] Apr 08, 2014 3:27:24 PM org.apache.coyote.AbstractProtocol start INFO: Starting ProtocolHandler ["http-bio-8843"] Apr 08, 2014 3:27:24 PM org.apache.catalina.startup.Catalina start INFO: Server startup in 23821 ms

Ahora: el problema es cuando despliegue la misma aplicación (usando un archivo .war) en el mismo servidor tomcat7 / var / lib / tomcat7 / webapps

Puedo abrir mi página web inicial PERO sin datos,

Veo en el registro:

INFO: No Spring WebApplicationInitializer types detected on classpath

Cuando reinicio tomcat7 me meto en el archivo de registro:

INFO: Destroying ProtocolHandler ["http-bio-8843"] Apr 8, 2014 3:25:30 PM org.apache.tomcat.util.digester.SetPropertiesRule begin WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property ''source'' to ''org.eclipse.jst.j2ee.server:my_project'' did not find a matching property. Apr 8, 2014 3:25:30 PM org.apache.coyote.AbstractProtocol init INFO: Initializing ProtocolHandler ["http-bio-8888"] Apr 8, 2014 3:25:31 PM org.apache.coyote.AbstractProtocol init INFO: Initializing ProtocolHandler ["http-bio-8843"] Apr 8, 2014 3:25:31 PM org.apache.catalina.startup.Catalina load INFO: Initialization processed in 1664 ms Apr 8, 2014 3:25:31 PM org.apache.catalina.core.StandardService startInternal INFO: Starting service Catalina Apr 8, 2014 3:25:31 PM org.apache.catalina.core.StandardEngine startInternal INFO: Starting Servlet Engine: Apache Tomcat/7.0.26 Apr 8, 2014 3:25:38 PM org.apache.coyote.AbstractProtocol start INFO: Starting ProtocolHandler ["http-bio-8888"] Apr 8, 2014 3:25:38 PM org.apache.coyote.AbstractProtocol start INFO: Starting ProtocolHandler ["http-bio-8843"] Apr 8, 2014 3:25:38 PM org.apache.catalina.startup.Catalina start INFO: Server startup in 7576 ms


Encontré el error: tengo una biblioteca que fue construida usando jdk 1.6. El controlador principal y los componentes de Spring se encuentran en esta biblioteca. Y cómo uso jdk 1.7, no encuentra las clases construidas en 1.6.

La solución fue construida utilizando "nivel de cumplimiento del compilador: 1.7" y "Compatibilidad de archivos .class generados: 1.6", "Compatibilidad de origen: 1.6".

Configuro esta opción en Eclipse: Preferences / Java / Compiler.

Gracias a todos.


Este es un error común, asegúrese de que su archivo.war esté construido correctamente. Simplemente abra el archivo .war y verifique que su WebApplicationInitializer esté allí.


Mi razón tonta fue: ¡ Build Automáticamente estaba deshabilitado!


Para usuarios de eclipse: la solución es simple simplemente cambie la naturaleza del proyecto Spring Tools-> add spring project nature

hecho.


Recibí este mensaje de información "No se detectaron tipos de Spring WebApplicationInitializer en classpath" al implementar un WAR con beans de integración de primavera en el servidor de WebLogic. En realidad, pude observar que el URL del servlet devolvió 404 Not Found y junto a ese mensaje de información con un tono negativo "No Spring ... etc" en los registros del servidor, nada más parecía haber cometido un error en mi configuración de Spring; sin errores de compilación o despliegue, sin quejas. De hecho, sospechaba que beans.xml (XML de contexto de primavera) en realidad no se recogió en absoluto y que estaba vinculado a la organización muy específica de los artefactos en jDeveloper de Oracle. La solución es jugar cuidadosamente con los ''contribuidores'' y ''filtros'' para la categoría WEB-INF / clases cuando edite su perfil de despliegue bajo el tema ''implementación'' en las propiedades del proyecto.

Precisamente, le aconsejo que nombre el contexto de primavera mediante el valor predeterminado "beans.xml" de jDeveloper y lo coloque al lado del subdirectorio WEB-INF (en su ruta de origen de la aplicación web, por ejemplo, como <... la ruta de su proyecto> / public_html /). Luego, en la categoría WEB-INF / clases (al editar el perfil de implementación), puede verificar el directorio raíz del HTML del proyecto en la lista ''colaborador'', y luego seleccionar beans.xml en filtros, y luego asegurarse de que sus características web.xml context-param value como classpath: beans.xml.

Una vez que se arregló, pude progresar y después de algunos cambios e implementaciones de configuración de bean, apareció el mensaje "¡No se han detectado tipos de Spring WebApplicationInitializer detectados en classpath"! En realidad, no me di cuenta cuándo y por qué volvió exactamente. Esta segunda vez, agregué un

public class HttpGatewayInit implements WebApplicationInitializer { ... }

que implementa métodos heredados vacíos, ¡y toda la aplicación funciona bien!

... Si siente que el desarrollo de Java EE se ha vuelto un poco loco con cascadas de archivos de configuración XML (algunos editados manualmente, otros a través de asistentes) interpretados por cascadas de inicializadores de variantes, permítanme insistir en que comparto completamente su punto.


También tuve el mismo problema. Mi experto tenía un plugin de tomcat7 pero el entorno de JRE era 1.6. Cambié mi tomcat7 por tomcat6 y el error desapareció.


Tuve un problema similar con Tomcat 8 incrustado en la aplicación java7.

Cuando lancé Tomcat en mi aplicación, funcionó. Pero cuando lo lancé a través de Maven para fines de prueba de integración, obtuve este error: "No se detectaron tipos Spring WebApplicationInitializer en classpath".

Lo arreglé actualizando las dependencias org.apache.tomcat.embed:tomcat-embed-* de la versión 8.0.29 a la 8.0.47.


<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin>

Este es el complemento importante que debe estar en pom.xml. Pasé mis dos días depurando e investigando. Esta fue la solución. Este es el complemento Apache para decirle a maven que use el compilador dado.