Pregunta

Cuando uso mvn tomcat:deploy de tomcat-maven-plugin aparece un error 403:

No se pudo ejecutar el objetivo org.codehaus.mojo:tomcat-maven-plugin:1.0:deploy (default-cli) en el proyecto my-webapp:No se puede invocar el administrador de Tomcat:El servidor devolvió el código de respuesta HTTP:403 para URL: http://localhost:8080/manager/text/deploy?path=%2Fdms&war=

Creo que es por el parámetro de guerra nulo.¿Pero por qué es nulo?

En pom.xml hay:

<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>
¿Fue útil?

Solución

los /manager La aplicación se asegura por defecto por nombre de usuario/contraseña. Si entras http: // localhost: 8080/gerente También se le pedirá que proporcione credenciales de seguridad. Primero cree/habilita el usuario en TomCat: después de cancelar o pocos intentos fallidos, Tomcat proporcionará ayuda en la pantalla de error. Luego usa estas credenciales en tomcat-maven-plugin como se explica aquí:

Agregue un bloque de configuración de complemento a su pom.xml:

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

Agregue un bloque de servidor correspondiente a su configuración.xml:

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

Otros consejos

Deberías usar /texto:

http: // localhost: 8080/gerente/texto

y también agregue a usuarios de rol administrador-script

Usted está utilizando Tomcat 7, debe dejar la configuración de su complemento en pom.xml como esta:

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

Lo he intentado con la configuración de la versión, como el ejemplo anterior, pero no funcionó para mí. En settings.xml shoud tiene la configuración del servidor, coincidiendo con el valor en el pom.xml

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

Entonces, MVN Tomcat: Implementar o MVN Tomcat: Redeploy (si ya ha implementado la aplicación), o MVN Tomcat: Run (con Tomcat Down) debería funcionar.

Solo tienes que cambiar la URL agregando el "/html" para que sea así http: // localhost: 8080/gerente/html y bingo funciona con la esperanza de que ayude

Para Tomcat7, en Tomcat-users.xml necesitas Rolename script gerente además:

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

y en Pom.xml de 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>

y la configuración de Maven.xml:

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

Hay algunos pasos, uno debe asegurarse de que se realicen. Este puede ser un verdadero agujero negro.

Si está utilizando Tomcat-Maven-Plugin de org.codehaus.mojo, debe usar esta configuración:

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

Asegúrese de tener las credenciales del servidor 'SERVER_NAME_ON_SETTINGSXML' definidas en Maven Settings.xml. Use MVN Tomcat: implement (debe usar este prefijo 'Tomcat'), esta es la única forma en que se lee las configuraciones anteriores.

Sin embargo, si está utilizando TomCat7-Maven-Plugin de org.apache.tomcat.maven, debe usar MVN Tomcat7: implement. El prefijo 'Tomcat7' leerá la configuración del complemento:

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

Estaba usando Tomcat: Deploy, y tenía en el pom.xml el Tomcat7-Maven-Plugin definido. Entonces, el despliegue Maven nunca estaba leyendo mi etiqueta de configuración ...

Si se asegura de tener nombres de usuario y contraseñas correctamente y usa el complemento correcto al implementar, funcionará.

Puede tener un error 403 si intenta usar el complemento Codehouse Tomcat versión 1.1 para implementar en un servidor Tomcat 7. La versión 1.1 aún no es compatible con Tomcat 7.

Si está utilizando Tomcat 7, debe usar carga.

Si está usando Tomcat 7:

  1. Cambie su configuración en pom.xml para usar la versión Tomcat 7 del complemento

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

Observe los valores y: son diferentes de los de Tomcat 6.

  1. No olvide cambiar el "TomCat: Deploy" a "TomCat7: Implementar" en sus scripts o Lanzadores de configuraciones de herramientas externas en Eclipse.
  2. Agregue una configuración del servidor a su configuración.xml, generalmente ubicada en la carpeta .m2
<server>
    <id>TomcatServer</id>
    <username>some_user_name</username>
    <password>some_password</password>
</server>
  1. Si necesita opciones adicionales, como implementar un archivo de guerra ubicado en una carpeta no estándar, visite: Tomcat 7 Maven Plugin

Descubrí que tenía que usar la siguiente cadena en lugar de "html":

http://localhost:8080/manager/text

Esto también es posible:

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

Si usa Tomcat 7, debe consultar la URL http: // localhost: 8080/gerente/html En el complemento 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 está utilizando la versión 7, hay una captura: el acceso al recurso /administrador /texto no está habilitado de forma predeterminada.

Debe crear un usuario con el rol Mananger-script, como dice en el documentación

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.

Espero eso ayude :)

Solía ​​​​recibir el mismo error, solo debe asegurarse de que el archivo tomcat-users.xml contenga el usuario (admin en mi caso) con roles como (administrador, administrador-gui, administrador, administrador-script).

Tengo tomcat 7, maven 3 en ubuntu.

Solo tiene que agregar los roles de administrador y administrador a su usuario de Tomcat en Tomcat-users.xml en la carpeta de configuración. En Tomcat 7 debe especificar diferentes roles para el acceso a la GUI de diferentes gerentes que en este caso van al texto. Al final para la interfaz de texto, debe utilizar un rol de Script Manager.

Puede ser que debe verificar su archivo de configuración en ~/.m2/settings.xml Este archivo debe estar con la estructura de siguientes:

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

Después de eso, debe asegurarse de que su conflic de servidor sea correcto para su proyecto, instancia de:

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

Más tarde ejecuta MVN Tomcat: desplegar. Recuerde que también podría ejecutar Tomcat: implement -x para ver el Debbug.

Esta solución es para el complemento "Apache" TomCat7: como ya se menciona antes, debe agregar "/texto" al final de la 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>

Configurar su "settings.xml" que se encuentra dentro de la carpeta .m2

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

Dado que usa Tomcat 7, lo más importante es que debe crear un usuario de "gerente-script" diferente, como se menciona en la documentación.

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

Si enfrenta un problema con respecto al nombre de usuario y la contraseña, no se preocupe, hay un archivo en el directorio Tomcat llamado tomcat-user.xml, vaya allí y vea los atributos de nombre y contraseña y use cuando el mensaje solicite el nombre de usuario y la contraseña.

Si aún no puede abrir la página de inicio de Apache, hacer una cosa, en el directorio Tomcat hay otro archivo nombrado server.xml Ve y cambia el puerto 8080 a esto

Si está utilizando Eclipse con el complemento M2ECLIPSE y aún tiene este error después de probar estas soluciones, podría deberse a que este complemento no tiene el administrador incluido. Debe descargar Tomcat por separado y configurar Eclipse para usarlo (verifique este enlace: Tomcat-Maven-Plugin: Código de respuesta HTTP devuelto del servidor: 403)

Pasando de Tomcat6 a Tomcat7 resumen:

  1. Agregar roles en Tomcat-user.xml
  2. Agregar /texto o /html a su URL
  3. Cambiar la versión del complemento

    <groupId>org.apache.tomcat.maven</groupId> 
    <artifactId>tomcat7-maven-plugin</artifactId> 
    <version>2.2</version>
    
  4. Cambie la opción Tomcat: Implementar con Tomcat7: implementar

He pasado más de tres días en Código de respuesta HTTP devuelto del servidor: 400 mientras intenta implementar la aplicación web en Tomcat Server 8.0 incluido con NetBeans. Cuando usé mvn tomcat7:deploy Sobre la línea de comandos, todo funcionó perfecto, pero no tenía éxito a través de NetBeans IDE. He configurado el complemento Tomcat Maven en 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>

más registro del servidor en .m2/conf/settings.xml para Maven,

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

Incluso el usuario apropiado de Tomcat en Tomcat-users.xml

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

pero aún sin éxito. La causa raíz fue el servidor proxy utilizado en la configuración de nuestra empresa y NetBeans. En NetBeans, vaya a Herramientas -> Opciones y en la pestaña General, use la configuración de proxy manual en lugar de la configuración del proxy del sistema (Incluso si la configuración del proxy del sistema funciona). Me ayudó y ahora puedo implementar la aplicación web en Tomcat 8 desde NetBeans directamente. También puede establecer ningún proxy cuando solo está utilizando el servidor localhost. La causa raíz de mi problema fue un proxy malo establecido en el navegador web predeterminado, que es la fuente para la configuración del proxy del sistema de opciones.

También obtengo el error 403, pero solo cuando me conecto a través de Apache 2. Cuando uso el puerto 8080 y lo despliegue en Tomcat directamente, funciona. Asi que: Intente agregar el puerto 8080 a la URL

Todavía estoy tratando de averiguar por qué no funciona a través de Apache. estoy usando ProxyPass / ajp://localhost:8009/y

<Location "/manager" >
     Order allow,deny
     Allow from 62.245.147.202
     Satisfy Any
   </Location>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top