Je suis sur le point de lancer mon application Web avec le plugin Maven Jetty. Mais après un certain temps au démarrage, cela donne l’erreur:
[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)
J'utilise spring mvc avec des annotations et je pense qu'il y a un problème à ce sujet.
Lorsque j'essaye de l'exécuter sur le plugin Eclipse Jetty, il démarre avec succès, mais avec maven plugin, l'erreur est générée.
Des idées?
J'ai la même erreur et pour y remédier, vous devez ajouter à votre script de démarrage (start.ini) ce qui suit:
-Dorg.Eclipse.jetty.annotations.maxWait=120
120 correspond à deux minutes de balayage des annotations au cas où vous auriez besoin d'une valeur plus élevée, réglez-la simplement sur celle qui correspond.
Une autre façon (à mon avis) pratique consiste à définir cette propriété à l'aide d'un fichier jetty.xml comme suit:
<?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 cette façon, vous pouvez omettre les arguments de ligne de commande
Il est inutile d'analyser tous les fichiers dépendants, vous pouvez rendre le modèle d'analyse plus restrictif pour ne faire correspondre que certains fichiers:
<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>
Voir webInfIncludeJarPattern
doc pour plus de détails: http://www.Eclipse.org/jetty/documentation/9.4.x/jetty-maven-plugin.html#configuring-your-webapp
Le moyen le plus simple consiste à ajouter la propriété système dans pom.xml
https://www.Eclipse.org/jetty/documentation/9.4.x/jetty-maven-plugin.html#setting-system-properties