Tomcat Maven プラグインの原型

具体的なサンプルを使用してさまざまな機能を紹介するために、Tomcat Maven プラグイン用の原型があります。

使用法

リリースバージョンを使用する

mvn archetype:generate \
   -DarchetypeGroupId=org.apache.tomcat.maven \
   -DarchetypeArtifactId=tomcat-maven-archetype \
   -DarchetypeVersion=2.2

SNAPSHOT バージョンを使用する

mvn archetype:generate \
   -DarchetypeGroupId=org.apache.tomcat.maven \
   -DarchetypeArtifactId=tomcat-maven-archetype \
   -DarchetypeVersion=2.2 \
   -DarchetypeRepository=https://repository.apache.org/content/repositories/snapshots/

次の出力が表示されます (tomcat-sample という名前のプロジェクトを使用します)

....
[INFO] Using property: groupId = org.apache.tomcat.maven
Define value for property 'artifactId': : tomcat-sample (project will be created in ./tomcat-sample )
...
cd tomcat-sample

プロジェクトの詳細

注: これは複雑な hello world サンプルです :-)

目標は HelloService という REST サービスを公開し、Web アプリケーションでそれを使用することです。

@Path( "HelloService" )
public interface HelloService
{
    @Path( "sayHello/{who}" )
    @GET
    @Produces( { MediaType.TEXT_PLAIN } )
    String sayHello( @PathParam( "who" ) String who );
}

Apache Cxf が実装を REST サービスとして公開するために使用されます。

標準のマルチモジュール Maven プロジェクトのレイアウトができました

  • basic-api (サービスインターフェイス)
  • basic-api-impl (サービスの既定の実装)。cxf の動作の詳細は、Spring 構成ファイルを参照してください。
  • basic-webapp (Web アプリモジュール)
  • basic-webapp-exec (実行可能な War を生成するモジュール)
  • basic-webapp-it (生成された War でセレンテストを実行するモジュール)

プロジェクトでプラグインを使用する

Web アプリを実行する

最上位ディレクトリで、mvn tomcat6:run または mvn tomcat7:run (使用する Tomcat バージョンによって異なります) を使用できます。

ブラウザで https://127.0.0.1:9090 にアクセスすると、非常に複雑な hello world Web アプリサンプルが使用されます

Selenium による統合テスト

mvn clean install を使用します。既定のブラウザは Firefox ですが、-Pchrome または -Piexplore を使用できます。

実行可能な war/jar を使用する

実行可能な jar/war ができました。

試してみてください

cd basic-webapp-exec/target/
java -jar basic-webapp-exec-1.0-SNAPSHOT-war-exec.jar -httpPort 9191

ブラウザで https://127.0.0.1:9191 にアクセスします。

何かをインストールする必要なく、この素晴らしいアプリケーションを実行する Tomcat 7 インスタンスが実行されるようになります。