2011年6月アーカイブ

AntからTomcatを起動/終了する

Antでビルド、デプロイ、Selenium、Coberture(JMeterも予定)を全自動で実施する実験をしている。

CobertureがTomcatを終了させないとカバレッジ測定結果ファイルを吐き出さないので、AntからTomcatを終了させる必要があった。ということは、全自動にするにはTomcatの開始も必要。

WebAPでlog4jを使ってたりするので、そのあたりでWebAP起動に失敗したりして。

Javaすら初心者なのでいろいろと苦労したが、動いた!!っつーことで、build.xmlのTomcat起動/終了部分を晒すよ。

<target name="tomcat-start">
<!-- jarだとなんでかダメ orz
    <java jar="${tomcat}/bin/bootstrap.jar" fork="true">
-->
    <java classname="org.apache.catalina.startup.Bootstrap" fork="true" spawn="true">
    <jvmarg value="-Dcatalina.home=${tomcat}" />
    <jvmarg value="-Dcatalina.base=${tomcat}" />
    <jvmarg value="-Djava.endorsed.dirs=${tomcat}¥endorsed"/>
    <jvmarg value="-Djava.io.tmpdir=${tomcat}¥temp"/>
    <jvmarg value="-Dfile.encoding=UTF-8"/>
    <jvmarg value="-Dnet.sourceforge.cobertura.datafile=D:¥(Coberturaの結果ファイル保存パス)¥cobertura.ser"/>

    <classpath location="(log4j.xmlのパス)" />
    <classpath>
      <fileset dir="${tomcat}">
        <include name="bin/bootstrap.jar" />
      </fileset>
    </classpath>
    <arg line="start"/>
  </java>
  <echo>tomcat started!!</echo>
</target>

<target name="tomcat-stop">
  <java jar="${tomcat}/bin/bootstrap.jar" fork="true">
    <jvmarg value="-Dcatalina.home=${tomcat}"/>
    <arg line="stop"/>
  </java>
  <waitfor maxwait="1" maxwaitunit="minute" checkevery="100">
    <not>
      <socket server="localhost" port="8080"/>
    </not>
  </waitfor>
  <echo>tomcat finished!!</echo>
</target>

EclipseからTomcatを起動したときはちゃんとWebAPが動くのに、Antから起動したTomcatでは動かなかったのはlog4j.xmlが読めてなかっただけだったのだが、MSが公開している「Process Explorer」ってフリーソフトでコマンドライン引数まで調べられて、コレのおかげでAntでも動かすことが出来るようになったのだ。

このアーカイブについて

このページには、2011年6月に書かれた記事が新しい順に公開されています。

前のアーカイブは2011年5月です。

次のアーカイブは2011年7月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。