2

以前に作成してTomcat7にデプロイしたREST Webサービスがあります。以前の質問でアドバイスされたように、Jetty にデプロイしたかったのですが、Maven プロジェクトを作成し、そこにファイルをコピーして依存関係を構成したところ、Eclipse から Maven インストールを正常に実行できました。

これはbuildPOM.xmlの私の部分です:

 <build>
    <plugins>
        <plugin>
             <groupId>org.mortbay.jetty</groupId>
             <artifactId>maven-jetty-plugin</artifactId>
        </plugin>

        <plugin>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.2</version>
            <configuration>
                <dependentWarExcludes></dependentWarExcludes>
                <webappDirectory>
                    WebContent
                </webappDirectory>

            </configuration>
        </plugin>
    </plugins>
</build> 

ここの指示に従って、maven jetty プラグインを使用しました (これが必要かどうかはわかりません)。ここでの質問は、たとえば http:localhost:8080/myproject に移動してプロジェクトが機能していることを確認できるように、Maven プロジェクトを eclipse から jetty にデプロイするにはどうすればよいかということです。

編集:

私が Tomcat でサービスを実行するために使用した方法は、プロジェクトを右クリックし、Run As -> Run on server (Eclipse サーバーで構成されている) をクリックすることでした。

私は eclipse Indigo、Maven 3、および jetty 8 を使用しています。また、Web サービスには jersey を使用しました。

4

1 に答える 1

2

ここでは、2 つの異なるものを混合しています。

  1. Eclipse サーバー プラグインを Eclipse 用の Tomcat プラグインとして使用して、Web アプリケーションを実行します。
  2. Maven プラグインを Jetty Maven プラグインとして使用して Web アプリケーションを実行します。Tomcat 用の Maven プラグインもあります。

そうは言っても、Mavenプラグインを実行するようにEclipseを構成する方法が説明されているこの回答を見てください(Eclipseのバージョンによって変わる可能性がありますが、考え方は似ています)

編集:

Maven から jetty を実行するだけの場合は、次のコマンド ラインを使用します。

mvn jetty:run

ただし、いずれにせよ、pom ファイルで Maven jetty プラグインのバージョンを指定することをお勧めします (指定しない場合、Maven から警告が表示されます)。

編集済み 2

まず、jetty maven プラグインのバージョンを更新します。

<plugin>
    <groupId>org.mortbay.jetty</groupId>
    <artifactId>jetty-maven-plugin</artifactId>
    <version>8.0.0.M2</version>
</plugin>

2番。war ファイルをビルドするためのプラグイン (maven-war-plugin) と、jetty でアプリケーションを実行するためのプラグイン (jetty-maven-plugin) の 2 つのプラグインを使用しています。jetty は、プロジェクトが標準の Maven プロジェクト構造を持っていると考えていることに注意してください。つまり、/src/main/webapp で Web アプリのコンテンツを探しますが、ここにはないようです。war プラグインの構成で、Web コンテンツが WebContent にあることを指定するため、jetty プラグインにそのディレクトリが存在することを伝え、war プラグインに指示します。

<plugin>
    <groupId>org.mortbay.jetty</groupId>
    <artifactId>jetty-maven-plugin</artifactId>
    <version>8.0.0.M2</version>
    <configuration>
        <webAppSourceDirectory>/WebContent</webAppSourceDirectory>             
        <webXml>/over/here/web.xml</webXml>
        <jettyEnvXml>/src/over/here/jetty-env.xml</jettyEnvXml>
        <classesDirectory>/somewhere/else</classesDirectory>
    <configuration>
</plugin>

ドキュメントを参照してください。もちろん、標準の Maven プロジェクト構造で作業する方がよいため、jetty にどこにあるかを伝える必要はありません。

于 2012-07-30T11:45:56.530 に答える