tomcat-maven-plugin 403 erreur
quand j'utilise mvn tomcat: déploiement de tomcat-maven-plugin il y a une erreur 403:
N'a pas réussi à exécuter goal org.codehaus.mojo:tomcat-maven-plugin:1.0:déployer (par défaut-cli) sur mon projet-webapp: Ne peut invoquer le Tomcat manager: le Serveur a renvoyé le code de réponse HTTP: 403 pour l'URL: http://localhost:8080/manager/text/deploy?path=%2Fdms&war=
je pense que c'est à cause du paramètre de guerre nul. Mais pourquoi est-il nul???
Dans le pom.il y a:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<configuration>
<warFile>targetmy-webapp.war</warFile>
<server>myserver</server>
<url>http://localhost:8080/manager/text</url>
<path>/dms</path>
</configuration>
</plugin>
21 réponses
l'application /manager
est par défaut sécurisée par nom d'utilisateur/mot de passe. Si vous entrez http://localhost:8080/manager vous devrez également fournir des justificatifs de sécurité. Premier utilisateur create / enable dans Tomcat: après l'annulation ou quelques tentatives infructueuses Tomcat fournira de l'aide sur l'écran d'erreur. Puis utiliser ces lettres de créance dans tomcat-maven-plugin
comme expliqué ici :
ajouter une configuration de plugin bloc à 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 à vos paramètres.xml:
<server>
<id>myserver</id>
<username>myusername</username>
<password>mypassword</password>
</server>
vous devez utiliser /texte:
http://localhost:8080/manager/text
et aussi ajouter à Gestionnaire de rôle de l'utilisateur-script
vous utilisez tomcat 7, vous devez laisser votre configuration de 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é la configuration de la version, comme dans l'exemple ci-dessus, mais ça n'a pas marché pour moi. Dans les paramètres.xml devraient avoir la configuration du serveur, correspondant à la valeur dans le pom.xml
<settings>
<servers>
<server>
<id>tomcat</id>
<username>admin</username>
<password>admin</password>
</server>
</servers>
</settings>
Donc, mvn tomcat:déployer ou mvn tomcat:redéployer (si vous avez déployé l'application est déjà fait), ou mvn tomcat:run (avec tomcat vers le bas).
vous avez juste à changer l'url en ajoutant le "/ html" de sorte qu'il sera comme ce http://localhost:8080/manager/html et bingo ça marche Espérer que l'aide
pour Tomcat7, dans tomcat-users.xml, vous devez rolename gestionnaire de script aussi:
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="tomcat" password="s3cret" roles="manager-script,manager-gui"/>
et dans POM du projet.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>
et les réglages de maven.xml:
<servers>
<server>
<id>myserver</id>
<username>tomcat</username>
<password>s3cret</password>
</server>
</servers>
il y a quelques étapes que l'on doit s'assurer d'accomplir. cela peut être un véritable trou noir.
si vous utilisez tomcat-maven-plugin 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>
s'il vous plaît assurez-vous que vous avez 'server_name_on_settingsxml' Server credentials défini sur les paramètres maven.XML. Utilisez mvn tomcat: deploy (vous devez utiliser ce préfixe "tomcat"), c'est la seule façon que lors du déploiement de la les configurations sont lues.
cependant si vous utilisez tomcat7-maven-plugin de org.Apache.tomcat.maven, vous devez utiliser mvn tomcat7:déployer. Le préfixe' tomcat7 'Lira configuration à partir 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. Donc, le maven deploy n'a jamais lu mon étiquette de configuration...
si vous vous assurez que vous avez les noms d'utilisateur et les mots de passe correctement définissez et utilisez le bon plugin lors du déploiement, il fonctionnera.
vous pouvez avoir une erreur 403 si vous essayez d'utiliser le plugin tomcat version 1.1 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.
si vous utilisez Tomcat 7:
-
modifiez votre configuration dans pom.xml pour utiliser la version Tomcat 7 de le 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>
remarquez les et les valeurs - elles sont différentes de celles de Tomcat 6.
- N'oubliez pas de changer le "tomcat:déployer" à "tomcat7:déployer" dans vos scripts, ou les Configurations D'outils externes lanceront dans Eclipse.
- ajouter une configuration de serveur à vos paramètres.xml, habituellement situé sous .dossier m2
<server> <id>TomcatServer</id> <username>some_user_name</username> <password>some_password</password> </server>
- si vous avez besoin d'options supplémentaires, comme le déploiement d'un fichier de guerre situé dans un dossier non standard, visitez: Tomcat 7 Plugin Maven
j'ai découvert que je devais utiliser la chaîne suivante au lieu de "html":
http://localhost:8080/manager/text
C'est aussi possible:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<configuration>
<server>myserver</server>
<username>admin</username>
<password>admin</password>
</configuration>
</plugin>
si vous utilisez Tomcat 7, vous devez vous référer à l'url http://localhost:8080/manager/html dans le 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>
si vous utilisez la version 7, Il y a un hic: 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 il est dit dans la 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.
Espère que cela aide :)
j'ai utilisé pour obtenir la même erreur, vous avez juste à s'assurer que tomcat-utilisateurs.fichier xml contiennent de l'utilisateur (admin dans mon cas) avec des rôles comme (gestionnaire, manager-gui, administrateur, gestionnaire de script).
j'ai tomcat 7, maven 3 sur ubuntu.
vous n'avez qu'à ajouter les rôles manager-script et manager à votre utilisateur tomcat dans tomcat-users.xml dans le dossier de configuration. Dans Tomcat 7, vous devez spécifier différents rôles pour différents gestionnaires D'accès GUI qui, dans ce cas, va au texte. À la fin de l'interface de texte, vous devez utiliser un rôle de gestionnaire-script.
peut être que vous devriez vérifier votre fichier de configuration dans ~/.m2/paramètres.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>
après cela, vous devez vous assurer que votre conf du serveur est correct pour votre projet, exemple de:
<servers>
<server>
<id>mytomcat</id>
<username>test</username>
<password>test</password>
</server>
</servers>
lance plus tard mvn tomcat:deploy. Rappelez-vous que vous pouvez aussi exécuter tomcat:deploy-X pour voir le debbug.
Cette solution est pour" Apache " tomcat7 plugin: Comme il est déjà mentionné précédemment, 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>
vous Configurer" Paramètres.xml", qui est situé à l'intérieur .dossier m2
<servers>
<server>
<id>TomcatServer</id>
<username>script-admin</username>
<password>password</password>
</server>
</servers>
puisque vous utilisez Tomcat 7, la chose la plus importante est que vous devez créer un utilisateur différent pour le rôle "manager-script", comme il est mentionné dans la documentation!
<role rolename="manager-script"/>
<user username="tomcat" password="password" roles="manager-script"/>
si vous rencontrez un problème concernant le nom d'utilisateur et le mot de passe s'il vous plaît ne vous inquiétez pas, il ya un fichier dans le répertoire tomcat nommé tomcat-user.xml
, allez-y et voir le nom et le mot de passe attributs et l'utilisation lorsque l'invite demander le nom d'utilisateur et mot de passe.
si vous n'êtes toujours pas en mesure d'ouvrir la page d'accueil d'apache faire une chose, dans le répertoire tomcat il y a un autre fichier nommé server.xml
allez et changez le port 8080 pour ceci
si vous utilisez Eclipse avec le plugin m2eclipse et que vous avez encore cette erreur après avoir essayé ces solutions, cela pourrait être parce que ce plugin n'a pas le gestionnaire inclus. Vous devez télécharger Tomcat séparément et configurer Eclipse pour l'utiliser (cochez ce lien: tomcat-maven-plugin: le serveur renvoie le code de réponse HTTP: 403 )
passant de tomcat6 à tomcat7 récapitulation:
- ajouter des rôles dans tomcat-user.xml
- Ajouter /texte ou / html à votre url
-
modifier la version plugin
<groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version>
-
modifier l'option tomcat: déployer avec tomcat7: déployer
j'ai passé plus de trois jours sur serveur retourné code de réponse HTTP: 400 tout en essayant de déployer l'application web sur Tomcat Server 8.0 livré avec Netbeans. Quand j'ai utilisé mvn tomcat7:deploy
sur la ligne de commande, tout fonctionnait parfaitement, mais aucun succès avec Netbeans IDE. J'ai mis tomcat maven plugin 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 .m2/conf/paramètres.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-utilisateurs.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 fondamentale était le serveur Proxy utilisé dans notre société et les paramètres Netbeans. dans Netbeans, allez à Outils - > Options et sur l'onglet Général, utilisez les paramètres de Proxy manuel au lieu des paramètres de Proxy système (même si les paramètres de Proxy système fonctionne). Il m'a aidé et maintenant je suis en mesure de déployer l'application web sur Tomcat 8 à partir de Netbeans directement. Vous pouvez également ne pas définir de mandataire lorsque vous utilisez seulement le serveur localhost. La cause fondamentale de mon problème était un mauvais proxy défini dans le navigateur Web par défaut, qui est la source pour les paramètres de Proxy système d'option.
j'obtiens aussi l'erreur 403, mais seulement quand je me connecte via Apache 2. Lorsque j'utilise le port 8080 et que je me déploie directement sur tomcat, cela fonctionne. Alors: essayez d'ajouter le port 8080 à L'URL
j'essaie toujours de comprendre pourquoi cela ne fonctionne pas via Apache. J'utilise ProxyPass / ajp://localhost:8009/
et
<Location "/manager" >
Order allow,deny
Allow from 62.245.147.202
Satisfy Any
</Location>