2012-03-30 4 views
10

Ich habe einen tomcat7. Der Zugriff auf die Manager-App (http: // localhost: 7777/manager/html) funktioniert problemlos mit den in tomcat-users.xml definierten Anmeldeinformationen.maven tomcat7: Bereitstellung fehlschlägt mit Zugriff verweigert

Jetzt möchte ich eine Anwendung mit maven3 bereitstellen. Ich baute das tomcat Maven Plugin:

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

In mavens setting.xml ich den Eintrag für den Server hinzugefügt:

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

Jetzt Anwendung wird bauen erfolgreich. Aber das Ziel tomcat7: deploy führt zu einem Zugriff verweigert Fehlermeldung von der Kater:

... 
[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]  <!-- 
... 

Könnte jemand mir einen Tip geben?

+0

Welches ist das richtige? tomcat6- oder tomcat7-? – khmarbaise

+0

Beide müssen in der pom.xml definiert werden, da einige Ziele nur im tomcat6 mojo verfügbar sind (siehe http://tomcat.apache.org/maven-plugin-2/index.html). – magomi

+1

Zuerst machen Sie es in Ihrem Fall mit nur Tomcat7, aber nicht beide. Danach müssen Sie über ein Profil für die anderen Ziele nachdenken. – khmarbaise

Antwort

1

Während keine Antwort auf die Frage, das Problem aufgrund der Tatsache zu sein scheint, dass tomcat:deploy versucht, die Webapp http://localhost:7777/manager/deploy bereitstellen, während es tomcat7 ist die deploy url http://localhost:777/manager/html/deploy. Es scheint keine Möglichkeit zu bestehen, dies als Plugin-Konfiguration anzugeben.

3

Lösung beschrieben in http://mycodenotes.wordpress.com/2011/01/25/mvn-tomcatdeploy-to-tomcat-7/ arbeitete für mich.

Das mvn-Plug-In tomcat-maven-plugin funktioniert gut mit Tomcat 5.5, aber es gibt einen 403-Fehler, wenn Sie versuchen, eine Tomcat 7-Instanz zu implementieren. Tomcat 7 hat die URLs für die Bereitstellung geändert, daher müssen Sie das Plugin so konfigurieren, dass es diese andere URL verwendet. Sie können mit der folgenden Plugin-Konfiguration dies zu tun:

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

Die Magie in der URL-Einstellung ist, die jetzt verwendet/Manager/html, anstatt die Standard-URL von nur/Manager. Die ursprüngliche Quelle für diese Information: http://www.jroller.com/Fabszn/entry/tomcat_7_et_le_plugin

+0

Außerdem ist es erforderlich, die Bereitstellung mit einem Benutzer durchzuführen, der über Berechtigungen für den Pfad "/ manager/html" verfügt. Ich habe diesem Benutzer eine Rolle "manager-gui" hinzugefügt. –

+0

Update: Ich habe Tomcat7_U40 heruntergeladen und die Bereitstellung funktionierte nicht wie im vorherigen Kommentar beschrieben, während es auf Tomcat7_U30 funktionierte. Dann habe ich die URL auf "http: // localhost: 8080/manager/text" geändert und einen Benutzer für die Bereitstellung mit den Rollen "manager-gui" und "manager-script" festgelegt. Es funktioniert so! –

19

Um zu dieser Frage zu folgen ich tatsächlich in diese Ausgabe lief meine ubuntu-Box vor kurzem Einrichten und meine Lösung, anstatt/html war tatsächlich/Text-zu-Punkt: Code:

<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

Das gleiche gilt für mich, danke Mutmatt, der/text Pfad funktioniert. Damit dies funktioniert, musste ich meinem Admin-Benutzer die manager-script-Rolle hinzufügen. – derFunk

+2

Dies sollte die akzeptierte Antwort sein. – BoD

+1

Arbeitete für mich! Raised Ticket: https://issues.apache.org/jira/browse/MTOMCAT-225 –

0

diese Arbeit mit folgenden Einstellungen Got:

MAVEN_HOME/conf/settings.xml:

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

TOMCAT_HOME/conf/zu 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> 

Deploy mit:

mvn clean install tomcat7:redeploy