tutorial example enablewebsecurity maven spring-mvc annotations jetty maven-jetty-plugin

maven - example - spring security oauth2



Jetty Annotation Timeout Reason (5)

Estoy tratando de ejecutar mi aplicación web con el complemento Maven Jetty. Pero después de algún tiempo en el inicio, da el error:

[INFO] Web defaults = org/eclipse/jetty/webapp/webdefault.xml [INFO] Web overrides = none 2014-08-10 17:39:45.840:INFO:oejs.Server:main: jetty-9.2.2.v20140723 2014-08-10 17:40:54.961:WARN:oejw.WebAppContext:main: Failed startup of context o.e.j.m.p.JettyWebAppContext@1e2c8{/asd,file:/C:/dev/project/hope/target/asd-1.0/,STARTING}{C:/dev/project/hope/target/asd-1.0.war} java.lang.Exception: Timeout scanning annotations at org.eclipse.jetty.annotations.AnnotationConfiguration.scanForAnnotations(AnnotationConfiguration.java:570) at org.eclipse.jetty.annotations.AnnotationConfiguration.configure(AnnotationConfiguration.java:440) at org.eclipse.jetty.webapp.WebAppContext.configure(WebAppContext.java:471) at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1329) at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:741) at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:497) at org.eclipse.jetty.maven.plugin.JettyWebAppContext.doStart(JettyWebAppContext.java:365) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132) at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114) at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)

Estoy usando spring mvc con anotaciones y creo que hay un problema al respecto.

Cuando trato de ejecutarlo sobre el plugin eclipse jetty, se inicia con éxito, pero con el complemento maven, da el error.

¿Algunas ideas?


Es inútil escanear todos los tarros dependientes, puede hacer que el patrón de escaneo sea más restrictivo para que solo coincida con ciertos tarros:

<plugin> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>9.2.8.v20150217</version> <configuration> <webAppConfig> <contextPath>/</contextPath> <webInfIncludeJarPattern>.*/foo-[^/]*/.jar$|.*/classes/.*</webInfIncludeJarPattern> </webAppConfig> </configuration> </plugin>

Consulte el documento webInfIncludeJarPattern para obtener más detalles: http://www.eclipse.org/jetty/documentation/9.4.x/jetty-maven-plugin.html#configuring-your-webapp



La propiedad (-Dorg.eclipse.jetty.annotations.maxWait = 120) se puede agregar a start.ini para que funcione para todas las aplicaciones web en su base de aplicaciones.


Tengo el mismo error y para solucionarlo, debe agregar a su secuencia de comandos de inicio (start.ini) lo siguiente:

-Dorg.eclipse.jetty.annotations.maxWait=120

120 es para dos minutos de escaneo de anotaciones en caso de que necesite un valor más alto, simplemente configúrelo en el adecuado.


Una forma más conveniente (en mi opinión) es configurar esta propiedad utilizando un jetty.xml así:

<?xml version="1.0"?> <!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd"> <Configure> <Call name="setProperty" class="java.lang.System"> <Arg>org.eclipse.jetty.annotations.maxWait</Arg> <Arg>120</Arg> </Call> </Configure>

De esta manera puedes omitir los argumentos de la línea de comandos.