2017-08-22 1 views
1

Wir haben ein Ant-Script in Antarktis (undeploy => deploy) in Eclipse auf Tomcat 8.5, es funktioniert gut:Ant re-deploy auf Tomcat 8.5 fehlgeschlagen - java.net.HttpRetryException: kann aufgrund der Serverauthentifizierung im Streaming-Modus nicht wiederholen

<target name="undeploy" description="undeploy from Tomcat"> 
    <undeploy 
     failonerror="no" 
     url="${tomcat-manager-url}" 
     username="${tomcat-manager-username}" 
     password="${tomcat-manager-password}" 
     path="/${project-name}" 
    /> 
</target> 

und

<target name="deploy" description="deploy to tomcat"> 
    <echo>deploying from client</echo> 
    <deploy 
     url="${tomcat-manager-url}" 
     username="${tomcat-manager-username}" 
     password="${tomcat-manager-password}" 
     path="/${project-name}" 
     war="file:${build-directory}/${war-file-name}" 
    /> 
</target> 

Dies funktioniert gut, implementieren ist erfolgreich:

undeploy: 
[undeploy] OK - Undeployed application at context path /project_name 
deploy: 
[echo] deploying from client 
[deploy] OK - Deployed application at context path /project_name 
build-and-undeploy-deploy: 
BUILD SUCCESSFUL 

Aber wir wollen nicht Verwenden Sie den eigenständigen Befehl "deploy" vor der Bereitstellung der Anwendung (da $ CATALINA_BASE/conf/[Modulname]/[Hostname] /Projektname.xml dann gelöscht wird), möchten wir App über Ziel bereitstellen mit Parameter update = "true" erneut bereitstellen.like in this documentation.

Dieses Skript funktionierte in der vorherigen Version Eclipse auf Tomcat 7, aber nicht jetzt auf Tomcat 8.5. Wir bekommen einen seltsamen "Authentifizierung" Fehler: java.net.HttpRetryException: kann aufgrund von Server-Authentifizierung nicht wiederholen, im Streaming-Modus:

<target name="deploy" description="deploy to tomcat" 
    <echo>deploying from client</echo> 
    <deploy 
     url="${tomcat-manager-url}" 
     username="${tomcat-manager-username}" 
     password="${tomcat-manager-password}" 
     path="/${project-name}" 
     war="file:${build-directory}/${war-file-name}" 
     update="true" 
    /> 
</target> 

Ergebnis:

BUILD FAILED 
..\build.xml:104: java.net.HttpRetryException: cannot retry due to server authentication, in streaming mode 
Total time: 922 milliseconds 

Ant in Eclipse Oxygen Version 1.10.1; getestet auf Tomcat 8.5.11/8.5.20; Java Version 1.8.0_144.

Antwort

0

Ich lief genau das gleiche Problem und konnte keinen Weg finden, es richtig zu lösen.

Was ich getan habe, um das Problem zu umgehen, ist, dass ich das war Tag durch localWar ersetzte. Anstatt Ihre Anwendung mithilfe einer HTTP-PUT-Operation zu implementieren, wird ein GET ausgeführt. Mein Verständnis ist, dass, anstatt Ihren WAR über HTTP zu senden, es dem Tomcat-Manager mitteilen wird, die Datei von dem angegebenen Speicherort in den Ordner webapps zu kopieren.

Ihre Datei würde wie folgt aussehen:

<target name="deploy" description="deploy to tomcat" 
    <echo>deploying from client</echo> 
    <deploy 
     url="${tomcat-manager-url}" 
     username="${tomcat-manager-username}" 
     password="${tomcat-manager-password}" 
     path="/${project-name}" 
     localWar="file:${build-directory}/${war-file-name}" 
     update="true" 
    /> 
</target> 

Hoffnung, das hilft.

0

Bitte überprüfen Sie, dass es Rolle in tomcat-users.xml Datei in conf Ordner Ihrer aktuellen tomcat 8.5 definiert ist. Bestätigen Sie es gegen die Datei tomcat-users.xml Ihrer früheren Tomcat 7.

Es Definition wie folgt enthalten:

<role rolename="manager"/> 
    <role rolename="admin"/> 
    <user username="admin" password="admin" roles="admin,manager"/> 
+1

In 8.5 sollte es Manager-Skript für die Textschnittstelle sein, so dass es von 7 geändert werden muss. –

1

fand ich das gleiche. Dies tritt für mich in allen Versionen nach 8.5.15 auf. 8.5.15 funktioniert gut. 8.5.16 und scheitern schließlich für mich.

Ich habe aus den Versionshinweisen nicht herausgefunden, welche Änderung das getan hätte, oder warum es auftritt, aber ich konnte bestätigen, dass es nicht in 8.5.15 und nicht in 8.5.16 passiert.

Ich entferne das 127.0.0.1 Tor in der Meta-inf, und ich kann mich von einem WebBrowser gut anmelden, aber wenn ich versuche, die ant-Aufgabe zu verwenden, schlägt es immer fehl. Gibt es Abhängigkeitsänderungen von 8.5.15 bis 8.5.16 mit dem Build-XML?

So können Sie umgehen, indem Sie versuchen, eine ältere Version 8.5, und ich denke, dass wir vielleicht ein Ticket gegen Tomcat öffnen sollten.

Verwandte Themen