統合テストを実行するためにCargo-Maven-Plugin(1.1.1)を使用してTomcatサーバーを起動および停止するmavenプロジェクトがあります。Maven Cargoはコンテナを停止しません
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.1.1</version>
<executions>
<execution>
<id>start-container</id>
<phase>pre-integration-test</phase>
<goals>
<goal>start</goal>
</goals>
</execution>
<execution>
<id>stop-container</id>
<phase>post-integration-test</phase>
<goals>
<goal>stop</goal>
</goals>
</execution>
</executions>
<configuration>
<container>
<type>installed</type>
<containerId>tomcat6x</containerId>
<zipUrlInstaller>
<url>http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.32/bin/apache-tomcat-6.0.32.zip</url>
</zipUrlInstaller>
</container>
</configuration>
</plugin>
サーバーの起動は問題なく動作しますが、は常に停止します。
[ERROR] Failed to execute goal org.codehaus.cargo:cargo-maven2-plugin:1.1.1:stop (stop-container) on project test: Execution stop-container of goal org.codehaus.cargo:cargo-maven2-plugin:1.1.1:stop failed: Failed to stop the Tomcat 6.x container. Server port 8080 did not shutdown within the timeout period [120000] -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.cargo:cargo-maven2-plugin:1.1.1:stop (stop-container) on project test: Execution stop-container of goal org.codehaus.cargo:cargo-maven2-plugin:1.1.1:stop failed: Failed to stop the Tomcat 6.x container.
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:225)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:534)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Caused by: org.apache.maven.plugin.PluginExecutionException: Execution stop-container of goal org.codehaus.cargo:cargo-maven2-plugin:1.1.1:stop failed: Failed to stop the Tomcat 6.x container.
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:116)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
... 19 more
Caused by: org.codehaus.cargo.container.ContainerException: Failed to stop the Tomcat 6.x container.
at org.codehaus.cargo.container.spi.AbstractLocalContainer.stop(AbstractLocalContainer.java:220)
at org.codehaus.cargo.maven2.ContainerStopMojo.doExecute(ContainerStopMojo.java:49)
at org.codehaus.cargo.maven2.AbstractCargoMojo.execute(AbstractCargoMojo.java:278)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:107)
... 20 more
Caused by: org.codehaus.cargo.container.ContainerException: Server port 8080 did not shutdown within the timeout period [120000]
at org.codehaus.cargo.container.spi.AbstractLocalContainer.waitForPortShutdown(AbstractLocalContainer.java:363)
at org.codehaus.cargo.container.spi.AbstractLocalContainer.waitForPortShutdown(AbstractLocalContainer.java:297)
at org.codehaus.cargo.container.tomcat.internal.AbstractCatalinaInstalledLocalContainer.waitForCompletion(AbstractCatalinaInstalledLocalContainer.java:190)
at org.codehaus.cargo.container.spi.AbstractLocalContainer.stop(AbstractLocalContainer.java:214)
... 23 more
私は、少なくとも空のプロジェクト(web.xmlファイル以外に注目)が、常に同じ結果を追加し、いくつかのプロジェクトでそれをテストしています。私はtomcat6、tomcat7、そして埋め込まれたJetty6と7でテストしましたが、いつも同じ例外があります。私は開始と停止の間に(統合テストを介して)5秒の遅延を追加しましたが、これは役に立ちません。
ログファイルと実行中のプロセスを見ると、Tomcatが停止しているように見えますが、貨物はそれに気付かなかったようです。
24.06.2011 17:38:07 org.apache.catalina.startup.Catalina start
INFO: Server startup in 694 ms
24.06.2011 17:38:07 org.apache.coyote.http11.Http11Protocol pause
INFO: Pausing Coyote HTTP/1.1 on http-8080
24.06.2011 17:38:08 org.apache.catalina.core.StandardService stop
INFO: Stopping service Catalina
24.06.2011 17:38:08 org.apache.coyote.http11.Http11Protocol destroy
INFO: Stopping Coyote HTTP/1.1 on http-8080
だから私の質問は次のとおりです。
- は私に何かを間違っていますか?
- バグですか?
- ワーキングルームはありますか?
。私は解決策を聞くことに興味があります - 私たちは、他の理由から、複数の分散ビルド間でビルドのフェーズを分割する必要があったので、Tomcatの起動/停止アクションをAntに移しました。ハドソン/ジェンキンス経由)。私たちが掘り起こしたのは、buildがどのようにTomcat JVMを生成するのか、そしてあなたがspawnフラグを処理しなかった場合、ビルド/ CIサーバが子プロセスをどのようにしてkillするのかです。 –
@Al Baker:私はCargo Bug Tracker(http://jira.codehaus.org/browse/CARGO-1005)でバグをオープンしました。しかし、私たちはまだ問題の原因を見いだせませんでした。それは他のシステムと連携していたからです。私があなたの設定を記述するためのコメントを追加するのに役立つかもしれません(私がバグに添付したサンプルプロジェクトがあなたのために働くかどうかを確認するかもしれません)。 – Ralph
それはほぼ同じでしたが、URLインストーラなしでは、私たちは切断されたネットワーク上にいた –