私はやろうとしているmvn clean package Tomcat7:deploy
ですが、常にこのエラーが発生します:tomcatManager status code:403, ReasonPhrase:Forbbiden
私の構成は次のとおりです:
〜/ .m2/settings.xml
<servers>
<server>
<id>localhost</id>
<username>Tomcat</username>
<password>s3cret</password>
</server>
</servers>
pom.xml
<profiles>
<profile>
<id>Tomcat-localhost</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<Tomcat-server>localhost</Tomcat-server>
<Tomcat-url>http://localhost:8080/manager/html</Tomcat-url>
</properties>
</profile>
</profiles>
<build>
<plugin>
<groupId>org.Apache.Tomcat.maven</groupId>
<artifactId>Tomcat7-maven-plugin</artifactId>
<version>2.0</version>
<configuration>
<server>${Tomcat-server}</server>
<url>${Tomcat-url}</url>
</configuration>
</plugin>
</plugins>
</build>
Tomcat-users.xml
<role rolename="manager-gui"/>
<user username="Tomcat" password="s3cret" roles="manager-gui"/>
私の間違いは何ですか?見えないから。
完全なメッセージエラー:
[INFO] --- Tomcat7-maven-plugin:2.0:deploy (default-cli) @ WebApp ---
[INFO] Deploying war to http://localhost:8080/Baskeitor
Uploading: http://localhost:8080/manager/html/deploy?path=%2FWebApp
Uploaded: http://localhost:8080/manager/html/deploy?path=%2FWebApp (7985 KB at 50215.2 KB/sec)
[INFO] tomcatManager status code:403, ReasonPhrase:Prohibido
[INFO] <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
[INFO] <html>
[INFO] <head>
[INFO] <title>403 Access Denied</title>
[INFO] <style type="text/css">
[INFO] <!--
[INFO] BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;font-size:12px;}
[INFO] H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;}
[INFO] PRE, TT {border: 1px dotted #525D76}
[INFO] A {color : black;}A.name {color : black;}
[INFO] -->
[INFO] </style>
[INFO] </head>
[INFO] <body>
[INFO] <h1>403 Access Denied</h1>
[INFO] <p>
[INFO] You are not authorized to view this page.
[INFO] </p>
[INFO] <p>
[INFO] If you have already configured the Manager application to allow access and
[INFO] you have used your browsers back button, used a saved book-mark or similar
[INFO] then you may have triggered the cross-site request forgery (CSRF) protection
[INFO] that has been enabled for the HTML interface of the Manager application. You
[INFO] will need to reset this protection by returning to the
[INFO] <a href="/manager/html">main Manager page</a>. Once you
[INFO] return to this page, you will be able to continue using the Manager
[INFO] appliction's HTML interface normally. If you continue to see this access
[INFO] denied message, check that you have the necessary permissions to access this
[INFO] application.
[INFO] </p>
[INFO] <p>
[INFO] If you have not changed
[INFO] any configuration files, please examine the file
[INFO] <tt>conf/Tomcat-users.xml</tt> in your installation. That
[INFO] file must contain the credentials to let you use this webapp.
[INFO] </p>
[INFO] <p>
[INFO] For example, to add the <tt>manager-gui</tt> role to a user named
[INFO] <tt>Tomcat</tt> with a password of <tt>s3cret</tt>, add the following to the
[INFO] config file listed above.
[INFO] </p>
[INFO] <pre>
[INFO] <role rolename="manager-gui"/>
[INFO] <user username="Tomcat" password="s3cret" roles="manager-gui"/>
[INFO] </pre>
[INFO] <p>
[INFO] Note that for Tomcat 7 onwards, the roles required to use the manager
[INFO] application were changed from the single <tt>manager</tt> role to the
[INFO] following four roles. You will need to assign the role(s) required for
[INFO] the functionality you wish to access.
[INFO] </p>
[INFO] <ul>
[INFO] <li><tt>manager-gui</tt> - allows access to the HTML GUI and the status
[INFO] pages</li>
[INFO] <li><tt>manager-script</tt> - allows access to the text interface and the
[INFO] status pages</li>
[INFO] <li><tt>manager-jmx</tt> - allows access to the JMX proxy and the status
[INFO] pages</li>
[INFO] <li><tt>manager-status</tt> - allows access to the status pages only</li>
[INFO] </ul>
[INFO] <p>
[INFO] The HTML interface is protected against CSRF but the text and JMX interfaces
[INFO] are not. To maintain the CSRF protection:
[INFO] </p>
[INFO] <ul>
[INFO] <li>Users with the <tt>manager-gui</tt> role should not be granted either
[INFO] the <tt>manager-script</tt> or <tt>manager-jmx</tt> roles.</li>
[INFO] <li>If the text or jmx interfaces are accessed through a browser (e.g. for
[INFO] testing since these interfaces are intended for tools not humans) then
[INFO] the browser must be closed afterwards to terminate the session.</li>
[INFO] </ul>
[INFO] <p>
[INFO] For more information - please see the
[INFO] <a href="/docs/manager-howto.html">Manager App HOW-TO</a>.
[INFO] </p>
[INFO] </body>
[INFO] </html>
私はTomcat 7.0.32を持っていて、それを常に再起動します。ユーザーに関する設定や、再度ロードする必要があるものを変更します。
同じ問題がありました。しかし、私はこの問題の次の解決策を見つけました:
pom.xml
<plugin>
<groupId>org.Apache.Tomcat.maven</groupId>
<artifactId>Tomcat7-maven-plugin</artifactId>
<version>2.0</version>
<configuration>
<url>http://localhost:8080/manager/text</url>
<server>localhost</server>
<path>/${project.build.finalName}</path>
</configuration>
</plugin>
〜/ .m2/settings.xml
<servers>
<server>
<id>localhost</id>
<username>admin</username>
<password>s3cret</password>
</server>
Tomcat-users.xml
<role rolename="manager-script"/>
<user username="admin" password="s3cret" roles="manager-script"/>
Tomcat-users.xmlを変更した後、サーバーを再起動することを忘れないでください。また、manager-guiロールにmanager-scriptを割り当てないでください同じユーザーに。
このようにするのに十分
pom.xml
<plugin>
<groupId>org.Apache.Tomcat.maven</groupId>
<artifactId>Tomcat7-maven-plugin</artifactId>
<version>2.0</version>
<configuration>
<path>/mywebapp</path>
<update>true</update>
<url>http://localhost:8080/manager/text</url>
<username>Tomcat</username>
<password>Tomcat</password>
</configuration>
</plugin>
Tomcat-users.xml
<Tomcat-users>
<role rolename="Tomcat"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="admin-gui"/>
<user username="Tomcat" password="Tomcat" roles="Tomcat,manager-gui,admin-gui,manager-script"/>
</Tomcat-users>
から http://Tomcat.Apache.org/maven-plugin-2.0/index.html
Use http://localhost:8080/manager/text rather than the default Tomcat6 url.
このエラーは、同じ名前の同じWARがすでにTomcatにデプロイされている場合にも表示されます。
URLは正しく使用されていません:
<Tomcat-url>http://localhost:8080/manager/html</Tomcat-url>
これをコメントとして追加したかったのですが、十分な評判スコアがありません。
誰かの役に立つかもしれないので、これを答えとして追加します。 Eclipseを使用してTomcat7にデプロイしようとすると、まったく同じエラーが発生しましたが、上記の解決策を試しても機能しませんでした。最後に、commandline(cmd)を使用してEclipseの外で試してみましたが、それは魅力のように機能しました。明らかに、マシンにmavenをインストールし、M2_Homeユーザー変数とM2_HOME/binを指すパス変数を設定する必要がありました。
ありがとう。
ロール名とURLの最後の部分について誤解があります。
元々Tomcat-usres.xmlには、「Tomcat」ユーザー(ロールTomcat)、ユーザー「both」(Tomcat + role1)のみがあり、管理ロールはありませんでした。 URLの最後の部分はある面でロール名に等しいようです...
これは私のために働きました(そうでなければ、私は正しいユーザーとパスワードが提供されていても常に403を得ました):
<?xml version='1.0' encoding='utf-8'?>
<Tomcat-users>
<role rolename="Tomcat"/>
<role rolename="admin"/>
<user username="Tomcat" password="Tomcat" roles="admin,Tomcat"/>
<user username="admin" password="Tomcat" roles="admin,Tomcat"/>
</Tomcat-users>