it-swarm.dev

tomcat-maven-plugin 403 fehler

Wenn ich mvn Tomcat: deploy von Tomcat-maven-plugin verwende, liegt ein Fehler 403 vor:

Fehler beim Ausführen des Ziels org.codehaus.mojo: Tomcat-maven-plugin: 1.0: deploy (Standardcli) für Projekt my-webapp: Tomcat-Manager kann nicht aufgerufen werden: Der Server hat den HTTP-Antwortcode: 403 für URL: http://localhost:8080/manager/text/deploy?path=%2Fdms&war= zurückgegeben.

Ich denke es wegen null Kriegsparameter. Aber warum ist es null?

In pom.xml gibt es:

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

Die Anwendung /manager ist standardmäßig durch einen Benutzernamen/ein Passwort geschützt. Wenn Sie http: // localhost: 8080/manager eingeben, werden Sie ebenfalls aufgefordert, Sicherheitsdaten einzugeben. Zuerst Benutzer in Tomcat erstellen/aktivieren: Nach dem Abbrechen oder einigen erfolglosen Versuchen gibt Tomcat Hilfe auf dem Fehlerbildschirm an. Verwenden Sie dann diese Anmeldeinformationen in Tomcat-maven-plugin wie erklärt hier :

Fügen Sie Ihrer pom.xml einen Plugin-Konfigurationsblock hinzu:

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

Fügen Sie Ihrer settings.xml einen entsprechenden Serverblock hinzu:

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

sie sollten/Text verwenden:

http: // localhost: 8080/manager/text

und auch zum User-Role-Manager-Script hinzufügen

44
Ivan

Wenn Sie Tomcat 7 verwenden, sollten Sie Ihre Plugin-Konfiguration in pom.xml wie folgt belassen:

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

Ich habe es mit der Versionskonfiguration versucht, wie im obigen Beispiel, aber es funktionierte nicht für mich. In der Datei setup.xml sollte die Konfiguration des Servers mit dem Wert in der pom.xml übereinstimmen

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

Also, mvn Tomcat: deploy oder mvn Tomcat: erneut implementieren (falls Sie die App bereits bereitgestellt haben) oder mvn Tomcat: run (mit Tomcat down) sollte funktionieren.

27
Deanx

Für Tomcat7 benötigen Sie in Tomcat-users.xml den Benutzernamen manager-script und außerdem: 

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

und in POM.xml des Projekts 

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

und mavens Einstellungen.xml: 

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

sie müssen nur die URL ändern, indem Sie "/ html" hinzufügen, damit es wie folgt aussehen wird: http: // localhost: 8080/manager/html und bingo

8
Amira Manai

Es gibt einige Schritte, von denen man überzeugt sein muss, dass sie ausgeführt werden. Dies kann ein echtes schwarzes Loch sein.

Wenn Sie Tomcat-Maven-Plugin aus org.codehaus.mojo verwenden, müssen Sie diese Konfiguration verwenden:

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

Stellen Sie sicher, dass die Server-Anmeldeinformationen 'server_name_on_settingsxml' für maven settings.xml ..__ definiert sind. Verwenden Sie mvn Tomcat: deploy (Sie müssen dieses Präfix 'Tomcat' verwenden). Dies ist die einzige Möglichkeit, bei der Bereitstellung der obigen Konfigurationen zu lesen.

Wenn Sie jedoch Tomcat7-Maven-Plugin von org.Apache.Tomcat.maven verwenden, müssen Sie mvn Tomcat7: deploy verwenden. Das Präfix 'Tomcat7' liest die Konfiguration vom Plugin:

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

Ich verwendete Tomcat: deploy und hatte in der pom.xml das Tomcat7-Maven-Plugin definiert. Das maven-Deploy las also nie mein Konfigurations-Tag ...

Wenn Sie sicherstellen, dass Sie Benutzernamen und Kennwörter korrekt definiert haben und Sie das richtige Plugin bei der Bereitstellung verwenden, funktioniert es.

7
dustEffect

Wenn Sie Tomcat 7 verwenden:

  1. Ändern Sie Ihre Konfiguration in pom.xml, um die Tomcat 7-Version von Des Plugins zu verwenden

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

Beachten Sie die Werte und - sie unterscheiden sich von denen für Tomcat 6.

  1. Vergessen Sie nicht, "Tomcat: deploy" in "__.... Ihrer Scripts" oder "External Tools Configurations Launchers" in Eclipse in "Tomcat7 deploy" zu ändern.
  2. Fügen Sie Ihrer settings.xml eine Serverkonfiguration hinzu, die sich normalerweise im .m2-Ordner befindet
<server>
    <id>TomcatServer</id>
    <username>some_user_name</username>
    <password>some_password</password>
</server>
  1. Wenn Sie zusätzliche Optionen benötigen, z. B. die Bereitstellung einer WAR-Datei, die sich in einem nicht standardmäßigen Ordner befindet, besuchen Sie: Tomcat 7 Maven Plugin
6
George

Sie können einen Fehler 403 erhalten, wenn Sie versuchen, das Codehouse-Tomcat-Plugin Version 1.1 für die Bereitstellung auf einem Tomcat 7-Server zu verwenden. Version 1.1 unterstützt Tomcat 7 noch nicht.

Wenn Sie Tomcat 7 verwenden, sollten Sie Cargo verwenden.

6
Dante

Ich entdeckte, dass ich die folgende Zeichenfolge anstelle von "html" verwenden musste:

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

Das ist auch möglich:

<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

Wenn Sie Tomcat 7 verwenden, müssen Sie im Tomcat-Plug-in auf die URL http: // localhost: 8080/manager/html verweisen. 

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

Ich habe immer dieselbe Fehlermeldung erhalten. Sie müssen lediglich sicherstellen, dass die Tomcat-users.xml-Datei den Benutzer (in meinem Fall admin) mit Rollen (manager, manager-gui, admin, manager-script) enthält. 

Ich habe Tomcat 7, Maven 3 auf Ubuntu. 

2
Rafi

Wenn Sie Version 7 verwenden, gibt es einen Haken: Der Zugriff auf die Ressource/manager/text ist standardmäßig nicht aktiviert.

Sie müssen einen Benutzer mit dem Rollenmananger-Skript erstellen, wie in der Dokumentation angegeben

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.

Ich hoffe es hilft :)

2
morwed

Sie müssen Ihrem Tomcat-Benutzer nur die Manager-Skript- und Manager-Rollen in der Datei "Tomcat-users.xml" im Ordner "config" hinzufügen. In Tomcat 7 müssen Sie verschiedene Rollen für den Zugriff auf die verschiedenen Manager-Benutzeroberflächen angeben . Am Ende für die Textschnittstelle müssen Sie eine Manager-Skript-Rolle verwenden.

1
Hernan

Diese Lösung ist für "Apache" Tomcat7-Plugin: Wie bereits erwähnt, müssen Sie am Ende der URL "/ text" hinzufügen

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

Konfigurieren Sie "settings.xml", die sich im .m2-Ordner befindet

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

Da Sie Tomcat 7 verwenden, müssen Sie unbedingt einen anderen Benutzer für die "manager-script" -Rolle erstellen, wie in der Dokumentation erwähnt.

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

Vielleicht sollten Sie Ihre Konfigurationsdatei in ~/.m2/settings.xml überprüfen. Diese Datei muss die folgende Struktur haben: 

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

Danach sollten Sie sich vergewissern, dass Ihre Server-Konfiguration für Ihr Projekt korrekt ist. Beispiel: 

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

führen Sie später mvn Tomcat: deploy aus. Denken Sie daran, dass Sie auch Tomcat ausführen können: deploy -X, um den Debbug anzuzeigen.

Wenn Sie Eclipse mit dem Plugin m2Eclipse verwenden und Sie nach dem Versuch dieser Lösungen immer noch diesen Fehler haben, kann dies daran liegen, dass dieses Plugin nicht den Manager enthält. Sie sollten Tomcat separat herunterladen und Eclipse so konfigurieren, dass es verwendet werden kann (überprüfen Sie diesen Link: Tomcat-maven-plugin: Der Server hat den HTTP-Antwortcode zurückgegeben: 403 )

0
chelder

Wenn Sie Probleme mit dem Benutzernamen und dem Kennwort haben, machen Sie sich keine Sorgen. Im Tomcat-Verzeichnis befindet sich eine Datei mit dem Namen Tomcat-user.xml. Dort finden Sie die Namen und die Kennwortattribute. Wenn Sie in der Eingabeaufforderung nach dem Benutzernamen und dem Kennwort gefragt werden.

Wenn Sie die Apache-Startseite immer noch nicht öffnen können, tun Sie eine Sache. Im Tomcat-Verzeichnis befindet sich eine weitere Datei mit dem Namen server.xml go, und ändern Sie Port 8080 in diese

0
Ajay

Übergabe von Tomcat6 an Tomcat7:

  1. Fügen Sie Rollen in Tomcat-user.xml hinzu
  2. Fügen Sie Ihrer URL/Text oder/html hinzu
  3. Plugin-Version ändern

    <groupId>org.Apache.Tomcat.maven</groupId> 
    <artifactId>Tomcat7-maven-plugin</artifactId> 
    <version>2.2</version>
    
  4. Ändern Sie die Option Tomcat: Bereitstellen mit Tomcat7: Bereitstellen

0
Yuri

Ich habe über drei Tage auf Server den HTTP-Antwortcode zurückgegeben: 400 , während ich versuche, eine Webanwendung auf Tomcat Server 8.0 mit Netbeans bereitzustellen. Wenn ich mvn Tomcat7:deploy über der Befehlszeile verwendet habe, hat alles perfekt funktioniert, aber kein Erfolg durch die Netbeans IDE. Ich habe Tomcat Maven Plugin in POM.xml gesetzt

<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 Servereintrag in .m2/conf/settings.xml für Maven,

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

sogar passender Tomcat-Benutzer in Tomcat-users.xml

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

aber immer noch ohne erfolg. Die Hauptursache war der in unserem Unternehmen verwendete Proxy-Server und die Netbeans-Einstellungen. Gehen Sie in Netbeans auf Extras -> Optionen, und verwenden Sie auf der Registerkarte Allgemein die Option Manuelle Proxyeinstellungen anstelle der Systemproxyeinstellungen (auch wenn die Systemproxyeinstellungen funktionieren). Es hat mir geholfen und jetzt kann ich Web-App direkt von Netbeans auf Tomcat 8 bereitstellen. Sie können auch keinen Proxy festlegen, wenn Sie nur einen localhost-Server verwenden. Die Hauptursache für mein Problem war ein fehlerhafter Proxy im Standard-Webbrowser, der die Quelle für die Option System Proxy-Einstellungen darstellt.

0
s0vet

Ich bekomme auch den 403-Fehler, aber nur, wenn ich mich über Apache 2 verbinde. Wenn ich Port 8080 verwende und direkt bei Tomcat implementiere, funktioniert es. Also: versuche, Port 8080 zur URL hinzuzufügen

Ich versuche immer noch herauszufinden, warum es nicht über Apache funktioniert. Ich benutze ProxyPass / ajp://localhost:8009/ Und

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