web-dev-qa-db-fra.com

erreur tomcat-maven-plugin 403

Quand j'utilise mvn Tomcat: déployez Tomcat-maven-plugin, il y a une erreur 403:

Échec de l'exécution de l'objectif org.codehaus.mojo: plugin Tomcat-maven: 1.0: déploiement (paramètre par défaut) sur le projet my-webapp: impossible d'appeler le gestionnaire Tomcat: le serveur a renvoyé le code de réponse HTTP: 403 pour l'URL: http://localhost:8080/manager/text/deploy?path=%2Fdms&war=

Je le pense à cause du paramètre null war. Mais pourquoi est-ce nul?

Dans pom.xml, il y a:

<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>

L'application /manager est par défaut sécurisée par nom d'utilisateur/mot de passe. Si vous entrez http: // localhost: 8080/manager , il vous sera demandé de fournir également des informations d'identification de sécurité. Commencez par créer/activer un utilisateur dans Tomcat: après l’annulation ou quelques tentatives infructueuses, Tomcat fournira une aide en cas d’erreur. Ensuite, utilisez ces informations d'identification dans Tomcat-maven-plugin comme expliqué ici :

Ajoutez un bloc de configuration de plugin à votre pom.xml:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>Tomcat-maven-plugin</artifactId>
    <configuration>
            <server>myserver</server>
    </configuration>
</plugin>

Ajoutez un bloc de serveur correspondant à votre fichier settings.xml:

<server>
    <id>myserver</id>
    <username>myusername</username>
    <password>mypassword</password>
</server>
14
Tomasz Nurkiewicz

vous devriez utiliser/text:

http: // localhost: 8080/manager/text

et aussi ajouter au script de rôle utilisateur

44
Ivan

Si vous utilisez Tomcat 7, vous devriez laisser la configuration de votre plugin dans pom.xml comme ceci:

<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>

J'ai essayé avec la configuration de la version, comme dans l'exemple ci-dessus, mais cela ne fonctionnait pas pour moi .

<settings>
    <servers>
        <server>
            <id>Tomcat</id>
            <username>admin</username>
            <password>admin</password>
        </server>
    </servers>
</settings>

Donc, mvn Tomcat: deploy ou mvn Tomcat: redéployez (si vous avez déjà déployé l'application), ou mvn Tomcat: run (avec Tomcat inactif) devrait fonctionner.

27
Deanx

Pour Tomcat7, dans Tomcat-users.xml, vous devez connaître le nom de rôle manager-script aussi: 

<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="Tomcat" password="s3cret" roles="manager-script,manager-gui"/>

et dans le fichier POM.xml du projet 

<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>

et settings.xml de maven: 

<servers>
 <server>
  <id>myserver</id>
  <username>Tomcat</username>
  <password>s3cret</password>
 </server>
</servers>
8
Narayan Subedi

il vous suffit de changer l'URL en ajoutant le "/ html" pour que ce soit comme ceci http: // localhost: 8080/manager/html et que bingo ça marche J'espère que cela vous aidera

8
Amira Manai

Il y a quelques étapes à franchir. cela peut être un vrai trou noir.

Si vous utilisez Tomcat-maven-plugin à partir de org.codehaus.mojo, vous devez utiliser cette configuration:

<configuration>
    <url>http://localhost:8080/manager/text</url>
    <warFile>your_war_filename.war</warFile>
    <server>server_name_on_settingsxml</server>
</configuration>

Assurez-vous que les informations d'identification du serveur 'nom_serveur_sur_settingsxml' sont définies dans maven settings.xml . Utilisez le mvn Tomcat: deploy (vous devez utiliser ce préfixe 'Tomcat'). C'est le seul moyen de lire les configurations ci-dessus.

Toutefois, si vous utilisez Tomcat7-maven-plugin à partir de org.Apache.Tomcat.maven, vous devez utiliser mvn Tomcat7: deploy. Le préfixe 'Tomcat7' lira la configuration du plugin:

        <plugin>
            <groupId>org.Apache.Tomcat.maven</groupId>
            <artifactId>Tomcat7-maven-plugin</artifactId>

J'utilisais Tomcat: deploy, et j'avais sur le pom.xml le Tomcat7-maven-plugin défini. Ainsi, le déploiement de maven ne lisait jamais ma balise de configuration ...

Si vous vous assurez que les noms d'utilisateur et les mots de passe sont correctement définis et que vous utilisez le plug-in approprié lors du déploiement, cela fonctionnera.

7
dustEffect

Si vous utilisez Tomcat 7:

  1. Modifiez votre configuration dans pom.xml pour utiliser la version Tomcat 7 de The plugin.

    <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>
    

Notez les valeurs et - elles sont DIFFERENTES de celles de Tomcat 6.

  1. N'oubliez pas de remplacer "Tomcat: deploy" par "Tomcat7: deploy" dans Vos scripts ou par les lanceurs de configurations d'outils externes dans Eclipse.
  2. Ajouter une configuration de serveur à votre fichier settings.xml, généralement situé sous le dossier .m2
<server>
    <id>TomcatServer</id>
    <username>some_user_name</username>
    <password>some_password</password>
</server>
  1. Si vous avez besoin d'options supplémentaires, telles que le déploiement d'un fichier WAR situé dans Un dossier non standard, visitez le site: Tomcat 7 Maven Plugin
6
George

Vous pouvez avoir une erreur 403 si vous essayez d'utiliser le plugin Tomcat version 1.1 de Codehouse pour se déployer sur un serveur Tomcat 7. La version 1.1 ne supporte pas encore Tomcat 7.

Si vous utilisez Tomcat 7, vous devez utiliser Cargo.

6
Dante

J'ai découvert que je devais utiliser la chaîne suivante au lieu de "html":

http://localhost:8080/manager/text
4
John O'Conner

Ceci est également possible:

<plugin>
   <groupId>org.codehaus.mojo</groupId>
   <artifactId>Tomcat-maven-plugin</artifactId>
    <configuration>
        <server>myserver</server>
        <username>admin</username>
        <password>admin</password>
    </configuration>
</plugin>
3
Cojones

Si vous utilisez Tomcat 7, vous devez vous référer à l’URL http: // localhost: 8080/manager/html du plugin Tomcat. 

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>
3
BigJ

J'avais l'habitude d'obtenir la même erreur, vous devez simplement vous assurer que le fichier Tomcat-users.xml contient l'utilisateur (administrateur dans mon cas) avec des rôles tels que (gestionnaire, gestionnaire-administrateur, administrateur, gestionnaire-script). 

J'ai Tomcat 7, Maven 3 sur Ubuntu. 

2
Rafi

Si vous utilisez la version 7, il y a un problème: l'accès à la ressource/manager/text n'est pas activé par défaut.

Vous devez créer un utilisateur avec le rôle mananger-script, comme indiqué dans documentation

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.

J'espère que ça aide :)

2
morwed

Il vous suffit d'ajouter les rôles manager-script et manager à votre utilisateur Tomcat dans Tomcat-users.xml dans le dossier config . Dans Tomcat 7, vous devez spécifier différents rôles pour différents accès à l'interface graphique du gestionnaire, qui dans ce cas passe au texte . À la fin de l'interface texte, vous devez utiliser un rôle de gestionnaire-script.

1
Hernan

Cette solution concerne le plugin Tomcat7 "Apache": Comme il a déjà été mentionné, vous devez ajouter "/ texte" à la fin de l'URL

<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>

Configurez votre "settings.xml" qui se trouve dans le dossier .m2

<servers>
    <server>
        <id>TomcatServer</id>
        <username>script-admin</username>
        <password>password</password>
    </server>
</servers>

Puisque vous utilisez Tomcat 7, le plus important est de créer un utilisateur différent pour le rôle "manager-script", comme indiqué dans la documentation!

<role rolename="manager-script"/>
<user username="Tomcat" password="password" roles="manager-script"/>
1
Kamiel Ahmadpour

Peut-être devriez-vous vérifier votre fichier de configuration dans ~/.m2/settings.xml ce fichier doit être avec la structure suivante: 

<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>

Ensuite, assurez-vous que la configuration de votre serveur est correcte pour votre projet, par exemple: 

  <servers>
     <server>
        <id>mytomcat</id>
        <username>test</username>
        <password>test</password>
     </server>
  </servers>

exécutez plus tard mvn Tomcat: deploy. N'oubliez pas que vous pouvez également exécuter Tomcat: deploy -X pour voir le debbug.

1

Si vous utilisez Eclipse avec le plug-in m2Eclipse et que vous rencontrez toujours cette erreur après avoir essayé ces solutions, il se peut que ce plug-in ne comporte pas le gestionnaire. Vous devez télécharger Tomcat séparément et configurer Eclipse pour l’utiliser (consultez ce lien: Tomcat-maven-plugin: le code de réponse HTTP renvoyé par le serveur a été renvoyé à: 403 ).

0
chelder

Si vous rencontrez un problème concernant le nom d'utilisateur et le mot de passe, ne vous inquiétez pas, il existe un fichier dans le répertoire Tomcat nommé Tomcat-user.xml, allez-y et consultez les attributs de nom et de mot de passe et utilisez-le lorsque l'invite demande le nom d'utilisateur et le mot de passe.

Si vous ne parvenez toujours pas à ouvrir la page d’accueil Apache, effectuez une opération. Dans le répertoire Tomcat, vous trouverez un autre fichier nommé server.xml, puis remplacez le port 8080 par celui-ci.

0
Ajay

En passant de Tomcat6 à Tomcat7 récapitulatif:

  1. Ajouter des rôles dans Tomcat-user.xml
  2. Ajoutez/text ou/html à votre url
  3. Changer la version du plugin

    <groupId>org.Apache.Tomcat.maven</groupId> 
    <artifactId>Tomcat7-maven-plugin</artifactId> 
    <version>2.2</version>
    
  4. Changer l'option Tomcat: deploy avec Tomcat7: deploy

0
Yuri

J'ai passé plus de trois jours sur Server a renvoyé le code de réponse HTTP: 400 tout en essayant de déployer une application Web sur Tomcat Server 8.0 fourni avec Netbeans. Lorsque j'ai utilisé mvn Tomcat7:deploy sur la ligne de commande, tout a fonctionné parfaitement, mais sans succès grâce à l'EDI Netbeans. J'ai mis le plugin Tomcat maven dans POM.xml

<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>

plus l'enregistrement du serveur dans .m2/conf/settings.xml pour Maven,

<settings>
    <servers>
        <server>
            <id>Tomcat</id>
            <username>admin</username>
            <password>admin</password>
        </server>
    </servers>
</settings>

même utilisateur Tomcat approprié dans Tomcat-users.xml

<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="Tomcat" password="Tomcat" roles="manager-script,manager-gui"/>

mais toujours sans succès. La cause première était le serveur proxy utilisé dans les paramètres de notre société et de Netbeans. Dans Netbeans, allez dans Outils -> Options et sur l’onglet Général, utilisez Paramètres de proxy manuels au lieu de Paramètres de proxy système (même si les paramètres de proxy système fonctionnent). Cela m'a aidé et je peux maintenant déployer directement une application Web sur Tomcat 8 à partir de Netbeans. Vous pouvez également définir Pas de proxy lorsque vous utilisez uniquement le serveur localhost. La cause fondamentale de mon problème était un proxy incorrect défini dans le navigateur Web par défaut, qui est la source de l'option Paramètres du proxy système.

0
s0vet

Je reçois également l'erreur 403, mais uniquement lorsque je me connecte via Apache 2. Lorsque j'utilise le port 8080 et que je déploie directement sur Tomcat, cela fonctionne. Donc: essayez d’ajouter le port 8080 à l’URL

J'essaie encore de comprendre pourquoi cela ne fonctionne pas avec Apache. J'utilise ProxyPass / ajp://localhost:8009/ Et

<Location "/manager" >
     Order allow,deny
     Allow from 62.245.147.202
     Satisfy Any
   </Location>
0
ropo