2013-04-25 9 views
7

Sto eseguendo il test di integrazione usando maven-jetty-plugin e maven-failsafe-plugin. Ecco la mia configurazione:Perché il server jetty si blocca dopo l'avvio del server e non esegue il test di integrazione?

<plugin> 
      <artifactId>maven-failsafe-plugin</artifactId> 
      <version>2.7.1</version> 
      <executions> 
       <execution> 
       <id>integration-test</id> 
       <goals> 
        <goal>integration-test</goal> 
       </goals> 
       </execution> 
       <execution> 
       <id>verify</id> 
       <goals> 
        <goal>verify</goal> 
       </goals> 
       </execution> 
      </executions> 
     </plugin> 

     <plugin> 
      <groupId>org.mortbay.jetty</groupId> 
      <artifactId>maven-jetty-plugin</artifactId> 
      <version>6.1.26</version> 
      <configuration> 

        <connectors> 
        <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector"> 
         <port>8080</port> 
         <maxIdleTime>3600000</maxIdleTime> 
        </connector> 
        </connectors> 

       <contextPath>/</contextPath> 
       <scanIntervalSeconds>3</scanIntervalSeconds> 
       <scanTargetPatterns> 
        <scanTargetPattern> 
         <directory>src/main/webapp/WEB-INF</directory> 
         <excludes> 
          <exclude>**/*.jsp</exclude> 
          <exclude>**/*.html</exclude> 
         </excludes> 
         <includes> 
          <include>**/*.page</include> 
          <include>**/*.properties</include> 
          <include>**/*.xml</include> 
         </includes> 
        </scanTargetPattern> 
       </scanTargetPatterns> 
      </configuration> 
      <executions> 
        <execution> 
         <id>start-jetty</id> 
         <phase>pre-integration-test</phase> 
         <goals> 
          <goal>run-war</goal> 
         </goals> 
         <configuration> 
          <scanIntervalSeconds>0</scanIntervalSeconds> 
          <daemon>true</daemon> 
         </configuration> 
        </execution> 
        <execution> 
         <id>stop-jetty</id> 
         <phase>post-integration-test</phase> 
         <goals> 
          <goal>stop</goal> 
         </goals> 
        </execution> 
      </executions> 
     </plugin> 

quando corro mvn clean install, avviato il server pontile e dopo che non succede nulla (si blocca). L'ultima riga nei miei log è: [INFO] Jetty Server avviato. Quando premo control-c, ecco cosa stampa:

2013-04-25 15:24:16.315:INFO::Shutdown hook executing 
2013-04-25 15:24:16.317:INFO::Stopped [email protected]:8080 
2013-04-25 15:24:16.821:INFO:/ca-app:Shutting down log4j 
2013-04-25 15:24:16.821:INFO:/ca-app:Closing Spring root WebApplicationContext 
2013-04-25 15:24:22.108:INFO::Shutdown hook complete[INFO] 
Jetty server exiting. 
[INFO] 
[INFO] --- maven-failsafe-plugin:2.7.1:integration-test (default) @ my-app --- 
[INFO] Failsafe report directory: my-app/target/failsafe-reports 

------------------------------------------------------- 
T E S T S 
------------------------------------------------------- 
Running TestSuite 
There are no tests to run. 

Results : 

Tests run: 0, Failures: 0, Errors: 0, Skipped: 0 

[WARNING] File encoding has not been set, using platform encoding MacRoman, i.e. build is platform dependent! 
[INFO] 
[INFO] --- maven-jetty-plugin:6.1.26:stop (stop-jetty) @ my-app --- 
[INFO] 
[INFO] --- maven-failsafe-plugin:2.7.1:verify (default) @ my-app --- 
[INFO] Killing Jetty 
[INFO] Failsafe report directory: my-app/target/failsafe-reports 
[WARNING] File encoding has not been set, using platform encoding MacRoman, i.e. build is platform dependent! 
[INFO] 
[INFO] --- maven-install-plugin:2.3.1:install (default-install) @ my-app --- 
[INFO] Installing my-app/target/ca-app-0.1.5-SNAPSHOT.war to ~/.m2/....../my-app/0.1.5-SNAPSHOT/my-app-0.1.5-SNAPSHOT.war 
[INFO] Installing my-app/pom.xml to ~/.m2/....../my-app/0.1.5-SNAPSHOT/my-app-0.1.5-SNAPSHOT.war 
[INFO] 
[INFO] --- maven-dependency-plugin:2.1:sources (install) @ my-app --- 

Perché rimane bloccato? Quando premo control-c, perché esegue il resto dei passaggi? Come posso aggiustarlo?

+0

domande simili era: http://stackoverflow.com/questions/4759620/integrazione-test-andrei-start-fail-safe-Maven? RQ = 1. Il richiedente ha commentato che la modifica della versione surefire-failsafe ha risolto il problema per lui. Ma non sembra funzionare per me. Ho commentato anche lì. –

+0

Qualsiasi aiuto sarà molto apprezzato. –

risposta

1

Provare a utilizzare start anziché run-war.

Da javadoc su org \ eclipse \ jetty \ jetty-maven-plugin \ 9.3.0.M2 \ jetty-maven-plugin-9.3.0.M2.jar! \ Org \ eclipse \ jetty \ maven \ plug-in \ AbstractJettyMojo.nonblocking


determina se i blocchi del server all'avvio. Il comportamento predefinito (falso) farà sì che il server metta in pausa altri processi mentre continua a gestire le richieste web. Questo è utile quando si avvia il server con l'intento di interagire con esso. Questo è il comportamento del molo : run, jetty: run-war, jetty: run-war-exploded goal. Se vero, il server non bloccherà l'esecuzione del codice successivo. Questo è il comportamento del molo : start e comportamento predefinito del molo : distribuire gli obiettivi.


0

Quindi, al fine di avviare il pontile add gestita:

<goals> 
    <goal>stop</goal> 
     <goal>start</goal> 
</goals> 

E tutto:

<plugin> 
    <groupId>org.eclipse.jetty</groupId> 
    <artifactId>jetty-maven-plugin</artifactId> 
    <version>9.2.10.v20150310</version> 
    <configuration> 
     <war>webapp/target/MyWar.war</war> 
     <stopKey>fooKey</stopKey> 
     <stopPort>8081</stopPort> 
     <stopWait>1</stopWait> 
     <httpConnector> 
      <port>8888</port> 
     </httpConnector> 
    </configuration> 
    <executions> 
     <execution> 
      <id>start-jetty</id> 
      <phase>pre-integration-test</phase> 
      <goals> 
       <goal>stop</goal> 
       <goal>start</goal> 
      </goals> 
      <configuration> 
       <scanIntervalSeconds>0</scanIntervalSeconds> 
       <daemon>true</daemon> 
       <stopKey>STOP</stopKey> 
       <stopPort>8866</stopPort> 
      </configuration> 
     </execution> 
     <execution> 
      <id>stop-jetty</id> 
      <phase>post-integration-test</phase> 
      <goals> 
       <goal>stop</goal> 
      </goals> 
      <configuration> 
       <scanIntervalSeconds>0</scanIntervalSeconds> 
       <daemon>true</daemon> 
       <stopKey>STOP</stopKey> 
       <stopPort>8866</stopPort> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 
Problemi correlati