web-dev-qa-db-fra.com

Erreur lorsque j'essaie de déployer une application sur le serveur Tomcat7

J'essaie de déployer une application Web sur Tomcat7 via Eclipse Luna, mais j'obtiens cette erreur:

Uploading: http://localhost:8080/manager/text/deploy?path=%2Floja

[INFO] I/O exception (Java.net.SocketException) caught when processing request: Connection reset
[INFO] Retrying request
Uploading: http://localhost:8080/manager/text/deploy?path=%2Floja

[INFO] I/O exception (Java.net.SocketException) caught when processing request: Connection reset
[INFO] Retrying request
Uploading: http://localhost:8080/manager/text/deploy?path=%2Floja

[INFO] I/O exception (Java.net.SocketException) caught when processing request: Connection reset
[INFO] Retrying request
Uploading: http://localhost:8080/manager/text/deploy?path=%2Floja

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.936 s
[INFO] Finished at: 2014-08-15T22:10:04-03:00
[INFO] Final Memory: 13M/112M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.Apache.Tomcat.maven:Tomcat7-maven-plugin:2.2:deploy (default-cli) on project loja: Cannot invoke Tomcat manager: Connection reset -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.Apache.org/confluence/display/MAVEN/MojoExecutionException

J'essaie également de déployer sur Tomcat8, mais j'obtiens la même erreur.

Dans mon pom.xml, j'ai cette configuration liée à cette opération:

  <build>
    <finalName>loja</finalName>
    <plugins>
        <plugin>
           <groupId>org.Apache.Tomcat.maven</groupId>
           <artifactId>Tomcat7-maven-plugin</artifactId>
           <version>2.2</version>
           <configuration>
                <url>http://localhost:8080/manager/text</url>
                <server>TomcatServer</server>
                <path>/loja</path>
                <username>user001</username>
                <password>123</password>
           </configuration>
        </plugin>
        <plugin>
            <groupId>org.Apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <configuration>
                <failOnMissingWebXml>false</failOnMissingWebXml>
            </configuration>
        </plugin>
    </plugins>
</build>

Quelqu'un sait ce qui se passe ici?

METTRE &AGRAVE; JOUR

J'essaie de déployer l'application avec la commande mvn:Tomcat7 deploy -X et le résultat était le suivant:

[INFO] Retrying request
[DEBUG] Reopening the direct connection.
[DEBUG] Connecting to localhost:8080
[DEBUG] Attempt 4 to execute request
[DEBUG] Sending request: PUT /manager/text/deploy?path=%2Floja HTTP/1.1
[DEBUG]  >> "PUT /manager/text/deploy?path=%2Floja HTTP/1.1[\r][\n]"
[DEBUG]  >> "User-Agent: Apache Tomcat Maven Plugin/2.2[\r][\n]"
[DEBUG]  >> "Content-Length: 18783041[\r][\n]"
[DEBUG]  >> "Host: localhost:8080[\r][\n]"
[DEBUG]  >> "Connection: Keep-Alive[\r][\n]"
[DEBUG]  >> "Authorization: Basic dXNlcjAwMToxMjM=[\r][\n]"
[DEBUG]  >> "[\r][\n]"
[DEBUG] >> PUT /manager/text/deploy?path=%2Floja HTTP/1.1
[DEBUG] >> User-Agent: Apache Tomcat Maven Plugin/2.2
[DEBUG] >> Content-Length: 18783041
[DEBUG] >> Host: localhost:8080
[DEBUG] >> Connection: Keep-Alive
[DEBUG] >> Authorization: Basic dXNlcjAwMToxMjM=
Uploading: http://localhost:8080/manager/text/deploy?path=%2Floja
...
[DEBUG] Connection 0.0.0.0:53183<->127.0.0.1:8080 closed
[DEBUG] Closing the connection.
[DEBUG] Connection 0.0.0.0:53183<->127.0.0.1:8080 closed
[DEBUG] Connection 0.0.0.0:53183<->127.0.0.1:8080 shut down
[DEBUG] Connection 0.0.0.0:53183<->127.0.0.1:8080 closed
[DEBUG] Connection released: [id: 0][route: {}->http://localhost:8080][total kept alive: 0; route allocated: 0 of 2; total allocated: 0 of 5]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 5.271 s
[INFO] Finished at: 2014-08-16T08:11:09-03:00
[DEBUG] Connection manager is shutting down
[INFO] Final Memory: 14M/109M
[INFO] ------------------------------------------------------------------------
[DEBUG] Connection manager shut down
14
Kleber Mota

Ok, j'ai eu le même problème avec Tomcat7. 

[INFO] I/O exception (Java.net.SocketException) caught when processing request: Connection reset
[INFO] Retrying request
Uploading: http://localhost:8080/manager/text/deploy?path=%2iplover

[INFO] I/O exception (Java.net.SocketException) caught when processing request: Connection reset
[INFO] Retrying request
Uploading: http://localhost:8080/manager/text/deploy?path=%2iplover

[INFO] I/O exception (Java.net.SocketException) caught when processing request:         Connection reset
[INFO] Retrying request
Uploading: http://localhost:8080/manager/text/deploy?path=%2iplover

Je ne pouvais pas le faire fonctionner 

mvn Tomcat7:redeploy 

comme mentionné ici

Ma guerre n'était pas très grande, seulement 4 Mo.

Voici le problème fondamental et la solution

Il est important que votre Tomcat-users.xml ait la configuration de rôles correcte. J'avais UNIQUEMENT le rôle manager setup. Ajouter manager-script semble important et complètement résolu mon problème. 

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

Je ne sais pas si quelqu'un a résolu ce problème. J'ai trouvé une solution de contournement dans mon cas: utiliser redéployer au lieu de déployer fonctionne bien.

Le problème peut être lié à un problème de mémoire ou d'accès en lecture/écriture, n'est-ce pas?

13
christophenoel

Quelle est la taille de votre guerre? c'est peut-être parce que la taille est trop grande. Par défaut, Tomcat Manager n'autorise que moins de 50 Mo de guerre. essayez également mvn Tomcat7: redeploy au lieu de deploy.

Voir ici comment augmenter la limite de taille de guerre

9
Wei

Essayez d’augmenter max-file-size et max-request-size dans le _web.xml Tomcat

Pour résoudre ce problème, éditez .../webapps/manager/WEB-INF/web.xml. Assurez-vous que la taille des fichiers est supérieure à celle du fichier war que vous essayez de télécharger. C'est à dire,

  <max-file-size>82914560</max-file-size>
  <max-request-size>82914560</max-request-size>

Puis redémarrez Apache Tomcat.

8
wired00

J'avais le même problème et je l'ai résolu en exécutant le but Maven 

Tomcat7: redéployer 

au lieu de 

Tomcat7: déployer

Cela a fonctionné à la fois pour Tomcat7 et Tomcat8, et mon fichier de guerre était toujours inférieur à 50 Mo. 

7
cleberz

Vérifiez ~/.m2/settings.xml

<settings>
  <servers>
    <server>
      <id>Tomcat-manager</id>
      <username>user001</username>
      <password>123</password>
    </server>
  </servers>
</settings>
2
masniimura

Problèmes occasionnels

Si le redéploiement échoue et réussit parfois, une augmentation de la journalisation peut indiquer une protection DOS.

Editez le /conf/logging.properties et ajoutez la ligne

org.Apache.catalina.level = FINEST

À la fin du fichier. Peut montrer cette sortie:

FINE [http-nio-8080-exec-7] org.Apache.catalina.authenticator.AuthenticatorBase.invoke Security checking request PUT /manager/text/deploy
FINE [http-nio-8080-exec-7] org.Apache.catalina.loader.WebappClassLoaderBase.loadClass loadClass(org.Apache.catalina.manager.ManagerServlet, false)
FINE [http-nio-8080-exec-7] org.Apache.catalina.loader.WebappClassLoaderBase.loadClass   Delegating to parent classloader1 Java.net.URLClassLoader@568db2f2
FINE [http-nio-8080-exec-7] org.Apache.catalina.loader.WebappClassLoaderBase.loadClass   Loading class from parent
FINE [http-nio-8080-exec-7] org.Apache.catalina.realm.RealmBase.findSecurityConstraints   Checking constraint 'SecurityConstraint[Status interface]' against PUT /text/deploy --> false
FINE [http-nio-8080-exec-7] org.Apache.catalina.realm.RealmBase.findSecurityConstraints   Checking constraint 'SecurityConstraint[Text Manager interface (for scripts)]' against PUT /text/deploy --> true
FINE [http-nio-8080-exec-7] org.Apache.catalina.realm.RealmBase.findSecurityConstraints   Checking constraint 'SecurityConstraint[HTML Manager interface (for humans)]' against PUT /text/deploy --> false
FINE [http-nio-8080-exec-7] org.Apache.catalina.realm.RealmBase.findSecurityConstraints   Checking constraint 'SecurityConstraint[JMX Proxy interface]' against PUT /text/deploy --> false
FINE [http-nio-8080-exec-7] org.Apache.catalina.realm.RealmBase.findSecurityConstraints   Checking constraint 'SecurityConstraint[Status interface]' against PUT /text/deploy --> false
FINE [http-nio-8080-exec-7] org.Apache.catalina.realm.RealmBase.findSecurityConstraints   Checking constraint 'SecurityConstraint[Text Manager interface (for scripts)]' against PUT /text/deploy --> true
FINE [http-nio-8080-exec-7] org.Apache.catalina.realm.RealmBase.findSecurityConstraints   Checking constraint 'SecurityConstraint[HTML Manager interface (for humans)]' against PUT /text/deploy --> false
FINE [http-nio-8080-exec-7] org.Apache.catalina.realm.RealmBase.findSecurityConstraints   Checking constraint 'SecurityConstraint[JMX Proxy interface]' against PUT /text/deploy --> false
FINE [http-nio-8080-exec-7] org.Apache.catalina.authenticator.AuthenticatorBase.invoke  Calling hasUserDataPermission()
FINE [http-nio-8080-exec-7] org.Apache.catalina.realm.RealmBase.hasUserDataPermission   User data constraint has no restrictions
FINE [http-nio-8080-exec-7] org.Apache.catalina.authenticator.AuthenticatorBase.invoke  Calling authenticate()
FINE [http-nio-8080-exec-7] org.Apache.catalina.realm.CombinedRealm.authenticate Attempting to authenticate user [admin] with realm [org.Apache.catalina.realm.UserDatabaseRealm]
FINER [http-nio-8080-exec-7] org.Apache.catalina.realm.RealmBase.authenticate Username [admin] NOT successfully authenticated
FINE [http-nio-8080-exec-7] org.Apache.catalina.realm.CombinedRealm.authenticate Failed to authenticate user [admin] with realm [org.Apache.catalina.realm.UserDatabaseRealm]
WARNING [http-nio-8080-exec-7] org.Apache.catalina.realm.LockOutRealm.filterLockedAccounts 
     An attempt was made to authenticate the locked user [admin]
FINE [http-nio-8080-exec-7] org.Apache.catalina.authenticator.AuthenticatorBase.invoke  Failed authenticate() test
FINE [http-nio-8080-exec-7] org.Apache.catalina.core.StandardHostValve.custom Processing ErrorPage[errorCode=401, location=/WEB-INF/jsp/401.jsp]
FINER [http-nio-8080-exec-7] org.Apache.catalina.core.StandardWrapper.allocate   Returning non-STM instance
FINE [http-nio-8080-exec-7] org.Apache.catalina.core.ApplicationDispatcher.doForward  Disabling the response for further output

(dans cette journalisation, l'utilisateur qui a tenté de télécharger a pour nom d'utilisateur admin)

Comme vous le voyez dans cette sortie, l'utilisateur admin est verrouillé:

WARNING [http-nio-8080-exec-7] org.Apache.catalina.realm.LockOutRealm.filterLockedAccounts 
  An attempt was made to authenticate the locked user [admin]

Regardez dans documentation et à l'intérieur du server.xml et vous trouverez un 

   <Realm className="org.Apache.catalina.realm.UserDatabaseRealm"
           resourceName="UserDatabase"/>

Utiliser un nom d'utilisateur imprévisible

Supprimer la ligne est une mauvaise idée, remplacez le nom d'utilisateur pour le redéploiement par un nom différent, plus imprévisible, tel que deploy355547511 afin de ne pas être verrouillé.

2
Peter Rader

J'ai eu le même problème et dans mon cas, le problème était un chemin de contexte cunfiguré ne commençant pas par /.La fixation du chemin de contexte "myapp" sur "/ myapp" a résolu le problème.

2
Frank

Le (re) déploiement avec le plugin Maven Tomcat a également échoué avec une réinitialisation de la connexion sur le client et le code d'état 403 dans le localhost_access.log sur Tomcat 8.5.30.

L'application de gestion de cette version de Tomcat a une RemoteAddrValve configurée par défaut, limitant l'accès au chemin/manager/* à localhost. Voir $Tomcat_HOME/webapps/manager/META-INF/context.xml.

Cela a aidé à activer la journalisation pour trouver la solution à ce problème .

0
KahPhi

Dans mon cas sur mon instance AWS Amazon, la raison était:

L'espace disque était COMPLET note 99% sur mon instance ponctuelle EC2

J'utilise jenkins en utilisant cette commande normalement

 mvn clean Tomcat7:redeploy -Ddeploy.password=xxxAG1
 -Ddeploy.username=admin -Ddeploy.context=/v1 -Ddeploy.url=http://localhost:8080/manager/text

 enter image description here

Libérez simplement cet espace et cela a fonctionné avec moi.

L'erreur que j'ai eu est 

[INFO] I/O exception (Java.net.SocketException) caught when processing request: Connection reset
[INFO] Retrying request


[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 53.914 s
[INFO] Finished at: 2018-01-10T08:38:28+00:00
[INFO] Final Memory: 47M/371M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.Apache.Tomcat.maven:Tomcat7-maven-plugin:2.2:redeploy (default-cli) on project XXXX-app: Cannot invoke Tomcat manager: Connection reset -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.

Hint utilisez cette commande Pour localiser ce qui occupe votre espace (la commande provient de stackoverflow )

0
shareef

Je ne sais pas si cela m'aidera, mais dans mon cas . Le plugin Tomcat7 prenait les détails du serveur dans le fichier maven conf settings.xml à la place de la pièce .m2\settings.xml .

0
Paritosh Moghe