Tomcat-maven-pluginのmvn Tomcat:deployを使用すると、403エラーが発生します。
プロジェクトmy-webappでの目標org.codehaus.mojo:Tomcat-maven-plugin:1.0:deploy(default-cli)の実行に失敗しました:Tomcatマネージャーを起動できません:サーバーがHTTP応答コードを返しました:403のhttp://localhost:8080/manager/text/deploy?path=%2Fdms&war=
Null warパラメータのためだと思います。しかし、なぜそれはヌルですか?
Pom.xmlには次のものがあります。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>Tomcat-maven-plugin</artifactId>
<configuration>
<warFile>target\my-webapp.war</warFile>
<server>myserver</server>
<url>http://localhost:8080/manager/text</url>
<path>/dms</path>
</configuration>
</plugin>
/manager
アプリケーションはデフォルトでユーザー名/パスワードで保護されています。 http:// localhost:8080/manager と入力すると、セキュリティ資格情報も入力するよう求められます。最初にTomcatでユーザーを作成/有効にします。キャンセルするか、いくつかの失敗した試行の後、Tomcatはエラー画面でヘルプを提供します。次に、Tomcat-maven-plugin
説明通り こちら :
プラグイン構成ブロックをpom.xmlに追加します。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>Tomcat-maven-plugin</artifactId>
<configuration>
<server>myserver</server>
</configuration>
</plugin>
対応するサーバーブロックをsettings.xmlに追加します。
<server>
<id>myserver</id>
<username>myusername</username>
<password>mypassword</password>
</server>
/ textを使用する必要があります。
http:// localhost:8080/manager/text
また、ユーザーロールにmanager-scriptを追加します
Tomcat 7を使用している場合は、pom.xmlに次のようなプラグイン構成を残す必要があります。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>Tomcat-maven-plugin</artifactId>
<configuration>
<url>http://localhost:8080/manager/html</url>
<server>Tomcat</server>
<path>/finance</path>
</configuration>
</plugin>
上記の例のようにバージョン構成を試しましたが、うまくいきませんでした。 settings.xmlには、pom.xmlの値と一致するサーバーの構成が含まれている必要があります
<settings>
<servers>
<server>
<id>Tomcat</id>
<username>admin</username>
<password>admin</password>
</server>
</servers>
</settings>
そのため、mvn Tomcat:deployまたはmvn Tomcat:redeploy(アプリを既にデプロイしている場合)、またはmvn Tomcat:run(Tomcat down)が機能するはずです。
Tomcat7の場合、Tomcat-users.xmlでロール名manager-scriptも必要です:
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="Tomcat" password="s3cret" roles="manager-script,manager-gui"/>
プロジェクトのPOM.xml
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>Tomcat-maven-plugin</artifactId>
<configuration>
<url>http://localhost:8080/manager/text</url>
<server>myserver</server>
<path>/sw</path>
</configuration>
</plugin>
およびmavenのsettings.xml:
<servers>
<server>
<id>myserver</id>
<username>Tomcat</username>
<password>s3cret</password>
</server>
</servers>
「/ html」を追加してURLを変更するだけで、次のようになります http:// localhost:8080/manager/html そしてbingo it work
必ずいくつかの手順を実行してください。これは真のブラックホールになる可能性があります。
Org.codehaus.mojoのTomcat-maven-pluginを使用している場合、次の構成を使用する必要があります。
<configuration>
<url>http://localhost:8080/manager/text</url>
<warFile>your_war_filename.war</warFile>
<server>server_name_on_settingsxml</server>
</configuration>
Maven settings.xmlで「server_name_on_settingsxml」サーバー資格情報が定義されていることを確認してください。 mvn Tomcat:deployを使用します(この「Tomcat」プレフィックスを使用する必要があります)。これは、上記の構成をデプロイするときに読み取られる唯一の方法です。
ただし、org.Apache.Tomcat.mavenのTomcat7-maven-pluginを使用している場合は、mvn Tomcat7:deployを使用する必要があります。 'Tomcat7'プレフィックスはプラグインから設定を読み取ります:
<plugin>
<groupId>org.Apache.Tomcat.maven</groupId>
<artifactId>Tomcat7-maven-plugin</artifactId>
Tomcat:deployを使用しており、pom.xmlにTomcat7-maven-pluginが定義されていました。だから、Mavenのデプロイは私の設定タグを読んでいませんでした...
ユーザー名とパスワードが正しく定義されていることを確認し、デプロイ時に正しいプラグインを使用すると、機能します。
Tomcat 7を使用している場合:
プラグインのTomcat 7バージョンを使用するようにpom.xmlの構成を変更します
<plugin>
<groupId>org.Apache.Tomcat.maven</groupId>
<artifactId>Tomcat7-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<url>http://127.0.0.1:8080/manager/html</url>
<server>TomcatServer</server>
<path>/your_context</path>
<username>some_user_name</username>
<password>some_password</password>
</configuration>
</plugin>
値と値に注意してください。これらはTomcat 6のものとは異なります。
<server> <id>TomcatServer</id> <username>some_user_name</username> <password>some_password</password> </server>
コードハウスTomcatプラグインバージョン1.1を使用してTomcat 7サーバーにデプロイしようとすると、403エラーが発生する可能性があります。バージョン1.1は、Tomcat 7をまだサポートしていません。
Tomcat 7を使用している場合は、Cargoを使用する必要があります。
「html」の代わりに次の文字列を使用する必要があることがわかりました。
http://localhost:8080/manager/text
これも可能です:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>Tomcat-maven-plugin</artifactId>
<configuration>
<server>myserver</server>
<username>admin</username>
<password>admin</password>
</configuration>
</plugin>
Tomcat 7を使用する場合は、Tomcatプラグインでurl http:// localhost:8080/manager/html を参照する必要があります。
http://mojo.codehaus.org/Tomcat-maven-plugin/examples/deployment-Tomcat7.html
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>Tomcat-maven-plugin</artifactId>
<version>1.2-SNAPSHOT</version>
<configuration>
<url>http://localhost:8080/manager/html</url>
</configuration>
</plugin>
以前は同じエラーが発生していました。Tomcat-users.xmlファイルに、ロール(manager、manager-gui、admin、manager-script)を持つユーザー(この場合はadmin)が含まれていることを確認する必要があります。
Tomcat 7、UbuntuにMaven 3があります。
バージョン7を使用している場合、問題があります。/manager/textリソースへのアクセスはデフォルトでは有効になっていません。
documentation にあるように、ロールmananger-scriptでユーザーを作成する必要があります
It would be quite unsafe to ship Tomcat with default settings that allowed anyone
on the Internet to execute the Manager application on your server.
Therefore, the Manager application is shipped with the requirement that anyone
who attempts to use it must authenticate themselves, using a username and
password that have the role manager-script associated with them.
Further, there is no username in the default users file
($CATALINA_BASE/conf/Tomcat-users.xml) that is assigned this role.
Therefore, access to the Manager application is completely disabled by default.
To enable access to the Manager web application, you must either create a new
username/password combination and associate the role name manager-script with it,
or add the manager-script role to some existing username/password combination.
それが役に立てば幸い :)
ConfigフォルダーのTomcat-users.xmlで、マネージャースクリプトとマネージャーロールをTomcatユーザーに追加するだけです。 Tomcat 7では、マネージャーGUIアクセスごとに異なる役割を指定する必要があり、この場合はテキストになります。テキストインターフェイスの最後に、マネージャースクリプトロールを使用する必要があります。
このソリューションは、「Apache」Tomcat7プラグイン用です。URLの最後に「/ text」を追加する必要がある前に既に述べたとおりです。
<plugin>
<groupId>org.Apache.Tomcat.maven</groupId>
<artifactId>Tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<port>8080</port>
<path>/deployPath</path>
<url>http://localhost:8080/manager/text</url>
<server>TomcatServer</server>
</configuration>
.m2フォルダー内にある「settings.xml」を構成します
<servers>
<server>
<id>TomcatServer</id>
<username>script-admin</username>
<password>password</password>
</server>
</servers>
Tomcat 7を使用しているため、最も重要なことは、ドキュメントに記載されているように、「manager-script」ロール用に別のユーザーを作成する必要があることです。
<role rolename="manager-script"/>
<user username="Tomcat" password="password" roles="manager-script"/>
〜/ .m2/settings.xmlの設定ファイルを確認する必要があるかもしれません。このファイルは、次の構造体である必要があります。
<settings xmlns="http://maven.Apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.Apache.org/SETTINGS/1.0.0
http://maven.Apache.org/xsd/settings-1.0.0.xsd">
<localRepository/>
<interactiveMode/>
<usePluginRegistry/>
<offline/>
<pluginGroups/>
<servers/>
<mirrors/>
<proxies/>
<profiles/>
<activeProfiles/>
</settings>
その後、サーバーconfがプロジェクトに対して正しいことを確認する必要があります:
<servers>
<server>
<id>mytomcat</id>
<username>test</username>
<password>test</password>
</server>
</servers>
後でmvn Tomcat:deployを実行します。また、debbugを見るためにTomcat:deploy -Xを実行することもできます。
Eclipseをプラグインm2Eclipseで使用していて、これらのソリューションを試した後でもこのエラーが引き続き発生する場合は、このプラグインにマネージャーが含まれていない可能性があります。 Tomcatを個別にダウンロードし、それを使用するようにEclipseを構成する必要があります(このリンクを確認してください: Tomcat-maven-plugin:サーバーはHTTP応答コードを返しました:4 )
ユーザー名とパスワードに関する問題に直面している場合、心配しないでください。TomcatディレクトリにTomcat-user.xml
という名前のファイルがあり、そこに行き、名前とパスワードの属性を確認し、プロンプトがユーザー名とパスワードを要求するときに使用します。
それでもApacheのホームページを開けない場合は、Tomcatディレクトリにserver.xml
という名前の別のファイルがあり、ポート8080をこれに変更してください。
Tomcat6からTomcat7の要約に渡す:
プラグインのバージョンを変更する
<groupId>org.Apache.Tomcat.maven</groupId>
<artifactId>Tomcat7-maven-plugin</artifactId>
<version>2.2</version>
オプションTomcat:deployをTomcat7:deployで変更します
NetbeansにバンドルされたTomcat Server 8.0にWebアプリケーションをデプロイしようとしたときにサーバーがHTTP応答コードを返しました:4に3日以上費やしました。コマンドラインでmvn Tomcat7:deploy
を使用すると、すべてが完璧に機能しましたが、Netbeans IDEでは成功しませんでした。 POM.xmlでTomcat mavenプラグインを設定しました
<plugin>
<groupId>org.Apache.Tomcat.maven</groupId>
<artifactId>Tomcat7-maven-plugin</artifactId>
<configuration>
<url>http://localhost:8080/manager/text</url>
<server>Tomcat</server>
</configuration>
</plugin>
さらに、Mavenの.m2/conf/settings.xmlのサーバーレコード、
<settings>
<servers>
<server>
<id>Tomcat</id>
<username>admin</username>
<password>admin</password>
</server>
</servers>
</settings>
tomcat-users.xmlの適切なTomcatユーザーでも
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="Tomcat" password="Tomcat" roles="manager-script,manager-gui"/>
しかし、まだ成功していません。根本的な原因は、当社で使用されているプロキシサーバーとNetbeansの設定です。 Netbeansでは、[ツール]-> [オプション]に移動し、[全般]タブで、システムプロキシ設定ではなく手動プロキシ設定を使用(システムプロキシ設定が機能している場合でも)。 NetBeansからTomcat 8にWebアプリを直接展開できるようになりました。 localhostサーバーのみを使用している場合は、プロキシなしを設定することもできます。問題の根本的な原因は、デフォルトのWebブラウザで設定されたプロキシが正しくなかったためです。これは、システムプロキシ設定オプションのソースです。
403エラーも発生しますが、Apache 2を介して接続する場合のみです。ポート8080を使用し、Tomcatに直接デプロイすると機能します。そのため:ポート8080をURLに追加してみてください
私はまだApache経由で動作しない理由を解明しようとしています。私は使っている ProxyPass / ajp://localhost:8009/
および
<Location "/manager" >
Order allow,deny
Allow from 62.245.147.202
Satisfy Any
</Location>