Domanda

Quando utilizzo MVN Tomcat: Distribuisci di Tomcat-Maven-Plugin c'è un errore 403:

Failed to execute goal org.codehaus.mojo:tomcat-maven-plugin:1.0:deploy (default-cli) on project my-webapp: Cannot invoke Tomcat manager: Server returned HTTP response code: 403 for URL: http://localhost:8080/manager/text/deploy?path=%2Fdms&war=

Lo penso a causa del parametro di Null War. Ma perché è nullo ???

In pom.xml c'è:

<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>
È stato utile?

Soluzione

Il /manager L'applicazione è predefinita protetta da nome utente/password. Se entri http: // localhost: 8080/manager Ti verrà chiesto di fornire anche credenziali di sicurezza. Innanzitutto Crea/Abilita l'utente in Tomcat: dopo l'annullamento o pochi tentativi non riusciti, Tomcat fornirà aiuto sullo schermo di errore. Quindi usa queste credenziali in tomcat-maven-plugin come spiegato qui:

Aggiungi un blocco di configurazione del plugin al tuo pom.xml:

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

Aggiungi un blocco server corrispondente a impostazioni.xml:

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

Altri suggerimenti

Dovresti usare /testo:

http: // localhost: 8080/manager/testo

e aggiungi anche a un gestore del ruolo utente-script

Stai usando Tomcat 7, dovresti lasciare la configurazione del plugin in pom.xml in questo modo:

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

Ho provato con la configurazione della versione, come sopra l'esempio, ma non ha funzionato per me. In impostazioni.xml shoud avere la configurazione del server, corrispondente con il valore in pom.xml

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

Quindi, mvn tomcat: distribuire o mvn tomcat: ridistribuzione (se hai già distribuito l'app) o mvn tomcat: eseguire (con tomcat down) dovrebbe funzionare.

Devi solo cambiare l'URL aggiungendo "/html", quindi sarà così http: // localhost: 8080/manager/html e il bingo funziona spera che aiuti

Per tomcat7, in tomcat-users.xml è necessario rolename Manager-script anche:

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

e in POM.xml di Project

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

e le impostazioni di Maven.xml:

<servers>
 <server>
  <id>myserver</id>
  <username>tomcat</username>
  <password>s3cret</password>
 </server>
</servers>

Ci sono alcuni passaggi che si devono essere sicuri che siano realizzati. Questo può essere un vero buco nero.

Se stai usando Tomcat-Maven-Plugin da org.codehaus.mojo, è necessario utilizzare questa configurazione:

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

Assicurati di avere credenziali del server "server_name_on_settingsxml" definite su maven impostazioni.xml. Utilizzare MVN Tomcat: distribuire (è necessario utilizzare questo prefisso "tomcat"), questo è l'unico modo in cui si è letta le configurazioni di cui sopra.

Tuttavia, se si utilizza tomcat7-maven-plugin da org.apache.tomcat.maven, è necessario utilizzare mvn tomcat7: distribuire. Il prefisso "Tomcat7" leggerà la configurazione dal plug -in:

        <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>

Stavo usando Tomcat: distribuire e ho avuto sul pom.xml definito il tomcat7-maven-plugin. Quindi, la distribuzione Maven non ha mai letto il mio tag di configurazioni ...

Se ti assicuri di avere nomi utente e password correttamente e si utilizza il plug -in corretto durante la distribuzione, funzionerà.

È possibile avere un errore 403 se si tenta di utilizzare il plug -in Tomcat Codehouse versione 1.1 per distribuire su un server Tomcat 7. La versione 1.1 non supporta ancora Tomcat 7.

Se stai usando Tomcat 7, dovresti usare il carico.

Se stai usando Tomcat 7:

  1. Modifica la configurazione in pom.xml per utilizzare la versione Tomcat 7 del 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>
    

Notare i valori e i valori: sono diversi da quelli per Tomcat 6.

  1. Non dimenticare di modificare il "Tomcat: Disploy" in "Tomcat7: Distribuisci" nei tuoi script o i lanciatori di configurazioni di strumenti esterni in Eclipse.
  2. Aggiungi una configurazione del server a impostazioni.xml, solitamente situata nella cartella .m2
<server>
    <id>TomcatServer</id>
    <username>some_user_name</username>
    <password>some_password</password>
</server>
  1. Se hai bisogno di opzioni aggiuntive, come distribuire un file di guerra situato in una cartella non standard, visita: Plugin Tomcat 7 Maven

Ho scoperto che dovevo usare la seguente stringa invece di "HTML":

http://localhost:8080/manager/text

Questo è anche possibile:

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

Se usi Tomcat 7 devi fare riferimento all'URL http: // localhost: 8080/manager/html Nel 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>

Se si utilizza la versione 7, c'è una presa: l'accesso alla risorsa /manager /testo non è abilitato per impostazione predefinita.

È necessario creare un utente con il ruolo di Mananger-script, come dice nel documentazione

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.

Spero che sia d'aiuto :)

Ho ricevuto lo stesso errore, devi solo assicurarmi che il file tomcat-us.xml contenga l'utente (amministratore nel mio caso) con ruoli come (manager, manager-gui, admin, manager-script).

Ho Tomcat 7, Maven 3 su Ubuntu.

Devi solo aggiungere i ruoli Manager-Script e Manager al tuo utente Tomcat in Tomcat-Users.xml nella cartella config. In Tomcat 7 è necessario specificare ruoli diversi per diversi accesso alla GUI che in questo caso va al testo. Alla fine per l'interfaccia di testo è necessario utilizzare un ruolo di manager-script.

Potrebbe essere che dovresti controllare il file di configurazione in ~/.m2/impostazioni.xml Questo file deve essere con la struttura segue:

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

Dopodiché dovresti essere sicuro che il tuo server conf sia corretto per il tuo progetto, istanza di:

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

Successivamente eseguire MVN Tomcat: distribuire. Ricorda che potresti anche eseguire Tomcat: distribuisci -x per vedere il Debbug.

Questa soluzione è per il plug -in "Apache" Tomcat7: come è già menzionato prima che sia necessario aggiungere "/testo" alla fine dell'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>

Configurare "Impostas.xml" che si trova all'interno della cartella .M2

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

Dato che usi Tomcat 7, la cosa più importante è che dovresti creare un utente diverso per il ruolo di "manager-script", come menzionato nella documentazione!

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

Se stai affrontando un problema per quanto riguarda il nome utente e la password, non preoccuparti, c'è un file nella directory Tomcat denominata tomcat-user.xml, Vai lì e consulta gli attributi Nome e Password e utilizza quando il prompt richiedi il nome utente e la password.

Se ancora non riesci ad aprire la home page di Apache, fai una cosa, nella directory Tomcat c'è un altro file denominato server.xml Vai e cambia la porta 8080 su questo

Se si utilizza Eclipse con il plug -in M2ECLIPSE e hai ancora questo errore dopo aver provato queste soluzioni, potrebbe essere perché questo plugin non ha incluso il gestore. Dovresti scaricare Tomcat separatamente e configurare Eclipse per usarlo (controlla questo link: Tomcat-Maven-Plugin: server restituito Codice di risposta HTTP: 403)

Passando da Tomcat6 al riepilogo Tomcat7:

  1. Aggiungi ruoli in tomcat-user.xml
  2. Aggiungi /testo o /html al tuo URL
  3. Modifica la versione del plugin

    <groupId>org.apache.tomcat.maven</groupId> 
    <artifactId>tomcat7-maven-plugin</artifactId> 
    <version>2.2</version>
    
  4. Modifica l'opzione Tomcat: distribuire con Tomcat7: distribuire

Ho trascorso oltre tre giorni su Il server ha restituito il codice di risposta HTTP: 400 Durante il tentativo di distribuire l'applicazione Web su Tomcat Server 8.0 in bundle con NetBeans. Quando ho usato mvn tomcat7:deploy Oltre alla riga di comando, tutto ha funzionato perfettamente, ma nessun successo tramite NetBeans IDE. Ho impostato il plugin Tomcat Maven in 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>

più record server in .m2/conf/impostazioni.xml per maven,

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

Anche utente Tomcat appropriato in tomcat-users.xml

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

ma ancora senza successo. La causa principale era il server proxy utilizzato nelle impostazioni della nostra azienda e NetBeans. In NetBeans, vai su Strumenti -> Opzioni e nella scheda Generale, utilizzare le impostazioni proxy manuali anziché le impostazioni del proxy di sistema (anche se le impostazioni del proxy di sistema funziona). Mi ha aiutato e ora sono in grado di distribuire direttamente l'app Web su Tomcat 8 da NetBeans. Non è inoltre possibile impostare alcun proxy quando si utilizza solo LocalHost Server. La causa principale per il mio problema era un brutto proxy impostato nel browser Web predefinito, che è l'origine per le impostazioni proxy del sistema di opzioni.

Ricevo anche l'errore 403, ma solo quando mi connetto tramite Apache 2. Quando utilizzo la porta 8080 e distribuisco direttamente su Tomcat funziona. Così: Prova ad aggiungere la porta 8080 all'URL

Sto ancora cercando di capire perché non funziona tramite Apache. sto usando ProxyPass / ajp://localhost:8009/e

<Location "/manager" >
     Order allow,deny
     Allow from 62.245.147.202
     Satisfy Any
   </Location>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top