2012-03-30 16 views
10

Tengo un tomcat7. El acceso a la aplicación de administrador (http: // localhost: 7777/manager/html) funciona bien con las credenciales definidas en tomcat-users.xml.maven tomcat7: implementación falla con acceso denegado

Ahora quiero implementar una aplicación con maven3. He configurado el plugin Tomcat experto:

<plugin> 
    <groupId>org.apache.tomcat.maven</groupId> 
    <artifactId>tomcat7-maven-plugin</artifactId> 
    <version>2.0-beta-1</version> 
    <configuration> 
     <url>http://localhost:7777/manager</url> 
     <server>localhost7777</server> 
    </configuration> 
</plugin> 
<plugin> 
    <groupId>org.apache.tomcat.maven</groupId> 
    <artifactId>tomcat6-maven-plugin</artifactId> 
    <version>2.0-beta-1</version> 
    <configuration> 
     <url>http://localhost:7777/manager</url> 
     <server>localhost7777</server> 
    </configuration> 
</plugin> 

En mavens setting.xml añadí la entrada para el servidor:

<servers> 
    <server> 
     <id>localhost7777</id> 
     <username>manager</username> 
     <password>secret</password> 
    </server> 
</servers> 

Ahora solicitud será construir con éxito. Pero el tomcat7 objetivo: implementar conduce a un mensaje de error de acceso denegado desde el Tomcat:

... 
[INFO] Deploying war to http://localhost:7777/workload-monitor 
Uploading: http://localhost:7777/manager/deploy?path=%2Fworkload-monitor&update=true 
Uploaded: http://localhost:7777/manager/deploy?path=%2Fworkload-monitor&update=true (2329 KB at 55435.1 KB/sec) 

[INFO] <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
[INFO] <html> 
[INFO] <head> 
[INFO] <title>403 Access Denied</title> 
[INFO] <style type="text/css"> 
[INFO]  <!-- 
... 

Podría alguien darme una pista?

+0

¿Cuál es la correcta? tomcat6- o tomcat7-? – khmarbaise

+0

Ambos tienen que definirse en el pom.xml porque algunos objetivos solo están disponibles en el mojo tomcat6 (consulte http://tomcat.apache.org/maven-plugin-2/index.html). – magomi

+1

Primero haga que se ejecute en su caso con solo tomcat7 pero no con ambos. Después de eso, debes pensar en un perfil para los otros objetivos. – khmarbaise

Respuesta

1

Aunque no es una respuesta a la pregunta, el problema parece ser debido al hecho de que tomcat:deploy intentos para desplegar la aplicación web a http://localhost:7777/manager/deploy mientras tomcat7, la url es implementar http://localhost:777/manager/html/deploy. No parece haber una manera de especificar esto como una configuración de complemento.

3

La solución descrita en http://mycodenotes.wordpress.com/2011/01/25/mvn-tomcatdeploy-to-tomcat-7/ funcionó para mí.

El plug-in mvn tomcat-maven-plugin funciona bien con tomcat 5.5, pero da un error 403 cuando intenta implementar en una instancia de tomcat 7. Resulta que tomcat 7 cambió las URL para implementar, por lo que necesita configurar el complemento para usar esta URL diferente. Usted puede hacer esto con la siguiente configuración plugin:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>tomcat-maven-plugin</artifactId> 
    <configuration> 
     <url>http://localhost:8080/manager/html</url> 
    </configuration> 
</plugin> 

La magia está en la configuración de URL que utiliza ahora/manager/html, en lugar de la URL predeterminada de poco/gerente. La fuente original de esta información: http://www.jroller.com/Fabszn/entry/tomcat_7_et_le_plugin

+0

Además, es necesario realizar la implementación con un usuario que tenga permisos para la ruta "/ manager/html". Agregué un rol "manager-gui" a ese usuario. –

+0

Actualización: descargué Tomcat7_U40 y la implementación no funcionaba como describí en el comentario anterior, mientras que funcionó bien en Tomcat7_U30. Luego cambié la URL a "http: // localhost: 8080/manager/text" y establecí un usuario para implementación con los roles "manager-gui" y "manager-script". ¡Funciona de esa manera! –

19

Para dar seguimiento a esta pregunta en realidad me encontré con este problema la creación de mi caja de ubuntu hace poco y mi solución, en lugar de/html era en realidad para que apunte a/texto: Código:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>tomcat-maven-plugin</artifactId> 
    <version>1.1</version> 
    <configuration> 
     <url>http://localhost:8080/manager/text</url> 
     <username>admin</username> 
     <password>admin</password> 
    </configuration> 
    </plugin> 
+3

Lo mismo conmigo, gracias Mutmatt, usando la ruta de/text trabajado. Para que eso funcione, tuve que agregar la función de gestor de guiones a mi usuario administrador. – derFunk

+2

Esta debería ser la respuesta aceptada. – BoD

+1

¡Trabajado para mí! Boleto elevado: https://issues.apache.org/jira/browse/MTOMCAT-225 –

0

Llegamos a este trabajo con los ajustes siguientes:

MAVEN_HOME/conf/settings.xml:

<server> 
    <id>myTomcat</id> 
    <username>admin</username> 
    <password>admin</password> 
</server> 

TOMCAT_HOME/conf/a mcat-users.xml:

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

pom.xml:

<pluginManagement> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.tomcat.maven</groupId> 
      <artifactId>tomcat7-maven-plugin</artifactId> 
      <version>2.1</version> 
      <configuration> 
       <server>myTomcat</server> 
       <url>http://localhost:8080/manager/text</url> 
       <path>/${project.build.finalName}</path> 
      </configuration> 
     </plugin> 
    </plugins> 
    </pluginManagement> 

Implementar con:

mvn clean install tomcat7:redeploy 
Cuestiones relacionadas