Why does the berth server freeze after the server starts and does not run the integration test?

I run an integration test using the maven-jetty-plugin and maven-failafe-plugin. Here is my configuration:

<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> 

When I run mvn clean install , the prefix server starts, and after that nothing happens (it gets stuck). Last line in my logs: [INFO] Launched the Jetty server. When I press control-c, this is what it prints:

 2013-04-25 15:24:16.315:INFO::Shutdown hook executing 2013-04-25 15:24:16.317:INFO::Stopped SelectChannelConnector@0.0.0.0 :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 ------------------------------------------------------- TESTS ------------------------------------------------------- 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, ie 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, ie 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 --- 

Why is he stuck? When I press control-c, why does it follow the rest of the steps? How can i fix this?

+7
source share
2 answers

Try using start instead of run-war .

From javadoc to org \ eclipse \ jetty \ jetty-maven-plugin \ 9.3.0.M2 \ jetty-maven-plugin-9.3.0.M2.jar! \ Org \ eclipse \ jetty \ maven \ plugin \ AbstractJettyMojo.nonblocking


Determines whether the server blocks at startup. The default behavior (false) will cause the server to pause other processes while it continues to process web requests. This is useful when starting a server with the intention of working with it interactively. This behavior runs a jetty: run, berth: escape, berth: escape-blown up . If true, the server will not block the execution of subsequent code. This behavior is berth: start and default behavior for berth: deployment purposes.


+1
source

So, to start the berth, run the run:

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

And all:

 <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> 
0
source

All Articles