6

Java と Maven ビルド システムを使用して Web アプリケーションを開発しています。Web サーバーは Tomcat 7.0.12 です。Mavenビルドコマンドでプロジェクト全体をWARファイルに\targetディレクトリにパッケージ化した後、それをTomcatホームのwebappsフォルダーにコピーして実行する必要があります。特にいくつかのソース ファイルを変更した場合は、すべての作業 (ビルド、Tomcat へのコピー、実行) を再度行う必要があるため、非常に不便です。この問題について、Maven、Tomcat、Eclipse に関するいくつかの記事を調査しましたが、結果はありません。助けてください: 1. Maven コマンドで直接ビルドされたプロジェクトのターゲット ディレクトリで Tomcat に WAR ファイルを実行させる方法は? WAR ファイルをコピーして貼り付け、Tomcat を再起動する必要はありませんか? 2. Eclipse で Web アプリケーションをデバッグするように Tomcat を構成するにはどうすればよいですか? どうもありがとう!

ところで、私はTomcat、Maven、およびpomファイルを何度も読んで構成しようとしました。しかし、アドバイスが多すぎて、正確な構成が何であるかはわかりません。構成の特定の例を教えていただけますか? ここに私の設定ファイルがあります:

Tomcat tomcat-users.xml

  <role rolename="manager-gui"/>
  <user username="admin" password="" roles="manager-gui"/>
  **<role rolename="manager"/>
  <user username="admin" password="" roles="manager"/>**
  <role rolename="admin-gui"/>
  <user username="admin" password="" roles="admin-gui"/>

Maven settings.xml

tomcat 管理者

そして、プロジェクトの pom.xml ファイル:

<build>
      <finalName>my-project</finalName>
      <defaultGoal>package</defaultGoal>
      <plugins>
         <plugin>
       <groupId>org.codehaus.mojo</groupId>
       <artifactId>tomcat-maven-plugin</artifactId>
       <version>1.1</version>
       <configuration>
          <server>tomcat</server>  
              <warFile> ${project.build.directory}/${project.build.finalName}.war</warFile>
       </configuration>
     </plugin>
      </plugins>
   // Other plugins
   </build>

詳細: Tomcat インスタンスを開始する前に mvn tomcat:deploy を実行すると、"Tomcat マネージャーを呼び出せません: 接続が拒否されました: 接続" というエラーが返されます。それ以外の場合、mvn tomcat:deploy を呼び出す前に Tomcat インスタンスが開始されている場合、エラーは「Tomcat マネージャーを呼び出せません: サーバーが HTTP 応答コードを返しました: 403 for URL: http://localhost:8080/manager/deploy?path=%」です。 2Fmy-project&war= ..."

4

2 に答える 2

4

これを行うにはいくつかの方法があります。

tomcat maven プラグインhttp://mojo.codehaus.org/tomcat-maven-plugin/は、maven から tomcat に直接デプロイする方法を提供します。最初に tomcat ユーザーを構成しておく必要があります。ユーザーの構成方法については、http://tomcat.apache.org/tomcat-7.0-doc/config/realm.htmlを参照してください。

デバッグのために、 http: //wiki.apache.org/tomcat/FAQ/Developing で指定された引数で tomcat を起動できます。

もう 1 つの方法は、戦争を指すように tomcat を構成することです。http://tomcat.apache.org/tomcat-7.0-doc/config/context.html、特にdocbaseパラメータを参照してください。

編集 1 改訂された質問 http 403 は禁止されていることに基づいて、これは正しく認証されなかったことを意味します。

tomcat-users.xml を次のように変更します。

pom.xml のユーザー名/パスワードに参照を追加する必要があります。settings.xml に含める必要があります (構成に基づく)

<server>
    <id>tomcat</id>
    <username>admin</username>
    <password></password>
</server>

それをより完全に説明する良いページhttp://www.avajava.com/tutorials/lessons/how-do-i-deploy-a-maven-web-application-to-tomcat.htmlがあります。ただし、情報が古い可能性があります。

于 2011-04-16T16:09:39.297 に答える
2

私はまったく同じ問題に遭遇しました。

これを行っているのはEclipse-Tomcatプラグインだと思います。そして、問題がなかったTomcat 6とは対照的に、Tomcat 7で動作が異なる理由がわかりません。

とにかく、私がしたことは、maven を /web-app/WEB-INF ディレクトリにビルドすることでした。

<build>
    <directory>${basedir}/src/main/webapp/WEB-INF</directory>
...
</build>

この構成の後、eclipse:eclipse は適切な eclipse プロジェクト/クラスパス ファイルを生成する必要があります。

于 2011-10-19T00:00:19.737 に答える