web-dev-qa-db-fra.com

Motif de délai d'expiration d'annotation de jetée

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?

19
Neron

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.

38
discolojr

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

5
martyglaubitz

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

3
Hover Ruan

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

1
Tom