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.