3

Tomcat (Cargo を使用) を起動し、統合テストの準備としてプロジェクトをデプロイするように Maven をセットアップしようとしています。

これが私のPOMです:

< ... >
<plugin>
    <groupId>org.codehaus.cargo</groupId>
    <artifactId>cargo-maven2-plugin</artifactId>
    <version>1.1.3</version>
    <configuration>
        <container>
            <containerId>tomcat6x</containerId>
            <type>installed</type>
            <home>/Dev/apache-tomcat-6.0.29/</home>
        </container>
        <configuration>
            <type>existing</type>
            <home>/Dev/apache-tomcat-6.0.29/</home>
        </configuration>
    </configuration>
    <executions>
        <execution>
            <id>start</id>
            <phase>pre-integration-test</phase>
            <goals>
                <goal>start</goal>
            </goals>
        </execution>
        <execution>
            <id>stop</id>
            <phase>post-integration-test</phase>
            <goals>
                <goal>stop</goal>
            </goals>
        </execution>
    </executions>
</plugin>
< .... >

クリーンアップしてビルドすると、Tomcat /lib ディレクトリにある Catalina.jar が見つかりません。

[talledLocalContainer] java.lang.ClassNotFoundException: org.apache.catalina.startup.Catalina
[talledLocalContainer]  at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
[talledLocalContainer]  at java.security.AccessController.doPrivileged(Native Method)
[talledLocalContainer]  at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
[talledLocalContainer]  at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
[talledLocalContainer]  at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
[talledLocalContainer]  at org.apache.catalina.startup.Bootstrap.init(Bootstrap.java:216)
[talledLocalContainer]  at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:391)

デバッグを有効にしてクリーンおよびビルドを実行すると、tomcat/server/lib で Catalina.jar を探していることが示されます。

[talledLocalContainer] Failed to find Tomcat version, base error [\Dev\apache-tomcat-6.0.29\server\lib\catalina.jar (The system cannot find the path specified)]
[talledLocalContainer] Parsed Tomcat version = [6.x]
[talledLocalContainer] Tomcat 6.x starting...
[talledLocalContainer] Project base dir set to:  C:\Users\Colin\Documents\NetBeansProjects\HousingWeb
[talledLocalContainer] Executing 'C:\Program Files\Java\jdk1.6.0_22\jre\bin\java.exe' with arguments:

私のTomcatディレクトリは次のようになります:

- apache-tomcat-6.0.29
   + bin
   + conf
   - lib
       - Catalina.jar
       - [bunch of other .jars]
   + logs
   + temp
   + webapps
   + work
   - [other files]

Cargo が Tomcat の lib フォルダを /lib だけでなく /server/lib の下で探すのはなぜですか?

この動作を無効にする方法はありますか?

アップデート:

Tomcat のさまざまなバージョン (5.5、6.0、7.0) を調べると、5.5 のディレクトリ構造には /server/lib と /common/lib があり、6.0 と 7.0 には /lib しかないようです。

Cargo は Tomcat 5.5 アプリをインスタンス化しようとしているようです。6.0 を使用するように構成するにはどうすればよいですか?

4

1 に答える 1

2

Tomcat を使用する代わりに、Tomcat をダウンロードして解凍すると、同じ問題が発生しますか?

<container>
    <containerId>tomcat6x</containerId>
    <zipUrlInstaller>
        <url>http://www.apache.org/dist/tomcat/tomcat-6/v6.0.35/bin/apache-tomcat-6.0.35.zip</url>
    </zipUrlInstaller>
</container>
于 2012-01-05T16:20:22.220 に答える