logo - error tomcat-maven-plugin 403
tomcat logo (21)
Cuando uso mvn tomcat: implementación de tomcat-maven-plugin hay un error 403:
Error al 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 el URL: http://localhost:8080/manager/text/deploy?path=%2Fdms&war=
Lo creo debido a un 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>
Descubrí que tenía que usar la siguiente cadena en lugar de "html":
http://localhost:8080/manager/text
Esta solución es para el complemento "Apache" Tomcat7: como ya se mencionó antes, debe agregar "/ text" 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 "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 utiliza Tomcat 7, lo más importante es que debe crear un usuario diferente para el rol "gestor de secuencia de comandos", como se menciona en la documentación.
<role rolename="manager-script"/>
<user username="tomcat" password="password" roles="manager-script"/>
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>
Hay algunos pasos que uno debe asegurarse de que se cumplan. esto 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 credenciales de servidor ''server_name_on_settingsxml'' definidas en maven settings.xml. Use mvn tomcat: deploy (debe usar este prefijo ''tomcat''), esta es la única forma en que se despliegan al desplegar las configuraciones anteriores.
Sin embargo, si usa tomcat7-maven-plugin de org.apache.tomcat.maven, debe usar mvn tomcat7: deploy. 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 de maven nunca estaba leyendo mi etiqueta de configuraciones ...
Si se asegura de tener correctamente definidos los nombres de usuario y las contraseñas y utiliza el complemento correcto al momento de la implementación, funcionará.
La aplicación /manager
está protegida por defecto por nombre de usuario / contraseña. Si ingresa http://localhost:8080/manager se le pedirá que proporcione credenciales de seguridad también. Primero crea / habilita el usuario en Tomcat: después de cancelar o de algunos intentos infructuosos, Tomcat brindará ayuda en la pantalla de error. Luego use estas credenciales en el tomcat-maven-plugin
como se explica here :
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 settings.xml:
<server>
<id>myserver</id>
<username>myusername</username>
<password>mypassword</password>
</server>
Para Tomcat7, en tomcat-users.xml necesita rolename manager-script también:
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="tomcat" password="s3cret" roles="manager-script,manager-gui"/>
y en el proyecto POM.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>
y la configuración de maven.xml:
<servers>
<server>
<id>myserver</id>
<username>tomcat</username>
<password>s3cret</password>
</server>
</servers>
Pasé más de tres días en el código de respuesta HTTP devuelto por el servidor: 400 mientras trataba de implementar la aplicación web en Tomcat Server 8.0 incluido con Netbeans. Cuando utilicé mvn tomcat7:deploy
través de la línea de comandos, todo funcionó perfectamente, pero no tuvo éxito a través de Netbeans IDE. He configurado el plugin de 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 el 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 de tomcat apropiado 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 principal fue el servidor Proxy utilizado en nuestra empresa y la configuración de 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 de proxy del sistema funciona). Me ayudó y ahora puedo implementar aplicaciones web en Tomcat 8 directamente desde Netbeans. También puede establecer No Proxy cuando está utilizando solo el servidor localhost. La causa raíz de mi problema fue un mal proxy configurado en el navegador web predeterminado, que es la fuente de la opción Configuración del proxy del sistema.
Pasando de tomcat6 a tomcat7 recapitular:
- Agregar roles en tomcat-user.xml
- Agregue / texto o / html a su url
Cambiar la versión del complemento
<groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version>
Cambiar la opción tomcat: implementar con tomcat7: deploy
Puede ser que deba verificar su archivo de configuración en ~ / .m2 / settings.xml este archivo debe estar con la siguiente estructura:
<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 el conf de su servidor sea el correcto para su proyecto, instancia de:
<servers>
<server>
<id>mytomcat</id>
<username>test</username>
<password>test</password>
</server>
</servers>
luego ejecute mvn tomcat: deploy. Recuerde que también podría ejecutar tomcat: deploy -X para ver el debbug.
Puede tener un error 403 si intenta utilizar el plugin de tomcat de código fuente versión 1.1 para implementarlo en un servidor Tomcat 7. La versión 1.1 aún no es compatible con Tomcat 7.
Si usa Tomcat 7, debe usar Cargo.
Si está utilizando Eclipse con el plugin m2eclipse y todavía tiene este error después de probar estas soluciones, podría ser porque este plugin no incluye el administrador. Debe descargar Tomcat por separado y configurar Eclipse para usarlo (consulte este enlace: tomcat-maven-plugin: Código de respuesta HTTP devuelto por el servidor: 403 )
Si está utilizando la versión 7, hay una trampa: el acceso al recurso / manager / text no está habilitado por defecto.
Debe crear un usuario con el rol mananger-script, como se dice en 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.
Espero eso ayude :)
Si está utilizando tomcat 7, debe dejar la configuración de su complemento en pom.xml de la siguiente manera:
<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>
He intentado con la configuración de la versión, como en el ejemplo anterior, pero no funcionó para mí. En settings.xml debe tener la configuración del servidor, haciendo coincidir el valor en el pom.xml
<settings>
<servers>
<server>
<id>tomcat</id>
<username>admin</username>
<password>admin</password>
</server>
</servers>
</settings>
Entonces, mvn tomcat: deploy o mvn tomcat: redespliegue (si ya has implementado la aplicación), o mvn tomcat: run (con tomcat down) debería funcionar.
Si se enfrenta a un problema relacionado con el nombre de usuario y la contraseña, no se preocupe, hay un archivo en el directorio tomcat-user.xml
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 todavía no puede abrir la página de inicio de apache haga una cosa, en el directorio de tomcat hay otro archivo llamado server.xml
vaya y cambie el puerto 8080 a este
Si usa Tomcat 7:
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>
Fíjese en los valores y - son DIFERENTES de los de Tomcat 6.
- No olvides cambiar "tomcat: deploy" por "tomcat7: deploy" en tus scripts o por los lanzadores de configuraciones de herramientas externas en Eclipse.
- Agregue una configuración de servidor a su settings.xml, generalmente ubicado debajo de la carpeta .m2
<server> <id>TomcatServer</id> <username>some_user_name</username> <password>some_password</password> </server>
- Si necesita opciones adicionales, como implementar un archivo WAR ubicado en una carpeta no estándar, visite: Tomcat 7 Maven Plugin
Si utiliza Tomcat 7, debe consultar la URL http://localhost:8080/manager/html en el 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>
Solía obtener el mismo error, solo tienes que asegurarte de que el archivo tomcat-users.xml contenga al usuario (admin en mi caso) con roles como (manager, manager-gui, admin, manager-script).
Tengo tomcat 7, maven 3 en ubuntu.
Solo debe agregar las funciones manager-script y manager a su usuario de tomcat en tomcat-users.xml en la carpeta config. En Tomcat 7, debe especificar diferentes roles para el acceso de diferentes administradores de la GUI, que en este caso se dirige al texto. Al final de la interfaz de texto, debe usar un rol de gestor de guiones.
También recibo el error 403, pero solo cuando me conecto a través de Apache 2. Cuando uso el puerto 8080 y lo despliego directamente a tomcat, funciona. Entonces: intente agregar el puerto 8080 a la URL
Todavía estoy tratando de descubrir 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>
deberías usar / text:
http: // localhost: 8080 / manager / text
y también agregar al usuario role manager-script
solo tiene que cambiar la URL agregando el "/ html" para que sea así http://localhost:8080/manager/html y bingo funciona. Espero que ayude