Frage Java 7 verhindert FTP-Übertragungen unter Windows Vista und 7, wenn die Firewall aktiviert ist. Irgendwelche Ideen?


Java 7 verhindert FTP-Übertragungen unter Windows Vista und 7.

Bevor eine Datei übertragen wird, muss in FTP ein PORT- oder ein PASV-Befehl gesendet werden. Sobald einer der Befehle gesendet wird, schließt die Windows-Firewall den Socket, der sie gesendet hat. Dies geschieht nur, wenn die Firewall aktiviert ist und eine Ausnahme für java.exe fehlt. Ich vermute, dass dieses Problem mit Java 7 unter Verwendung des neuen Vista IP-Stacks zusammenhängt.

Hat jemand irgendwelche Ideen, wie man dieses Problem beheben oder umgehen kann? Wir vertreiben eine Java-FTP-Bibliothek, sodass wir natürlich keine Ausnahmen selbst hinzufügen können.

Ausnahme:

java.net.SocketException: Permission denied: recv failed

JRE Versionsinfo:

java version "1.7.0"
Java(TM) SE Runtime Environment (build 1.7.0-b147)
Java HotSpot(TM) 64-Bit Server VM (build 21.0-b17, mixed mode)

FOLGE 1 (14. November 2011): Oracle hat das Problem analysiert und festgestellt, dass es sich um einen Fehler in der Windows-Firewall und / oder dem IPv6-Stack handelt. Sie haben das Problem mit einer nativen C-App (d. H. Nicht Java) repliziert. Dies ist ein starker Beweis dafür, dass der Fehler nicht in Java liegt. Sie haben Microsoft informiert, so dass der Ball jetzt in ihrem Gericht ist. Weitere Details finden Sie unter http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7077696

FOLGE 2 (27. Juli 2012): Ein (sehr hilfreicher) Kontakt bei Oracle hat mir gesagt, dass das Problem bei Microsoft eskaliert wurde. Wir hoffen, bald Ergebnisse zu sehen.

FOLGE 3 (15. August 2012): Unser Kontakt bei Oracle hat uns mitgeteilt, dass Microsoft den Bug akzeptiert hat und gerade dabei ist, diesen zu priorisieren.

FOLGE 4 (21. September 2012): Microsoft hat einen Patch entwickelt, der derzeit von Oracle getestet wird. Kein Wort zu einem Veröffentlichungsdatum.

FOLGE 5 (11. Oktober 2012): Erfolg endlich! Microsoft hat ein. Veröffentlicht Hotfix. Sie implizieren, dass das Update in Zukunft in ein allgemeines Software-Update aufgenommen wird:

"Wenn Sie von diesem Problem nicht schwer betroffen sind, empfehlen wir, dass Sie auf das nächste Softwareupdate warten, das diesen Hotfix enthält."


75
2017-08-09 02:02


Ursprung


Antworten:


Wir haben den Windows-Hotfix getestet http://support.microsoft.com/kb/2754804 und bestätigte, dass es das Problem gelöst hat.


14
2017-11-01 15:41



Das Problem wird durch den statusbehafteten FTP-Filter der Firewall verursacht. Als Workaround können Sie es deaktivieren, indem Sie es ausführen netsh advfirewall set global StatefulFTP disable mit Administratorrechten.


88
2017-10-05 07:16



Ich habe einen Fehlerbericht an Oracle gesendet, siehe bugs.sun.com/bugdatabase/view_bug.do?bug_id=7077696 

Sie haben die Priorität als niedrig markiert, was mich denken lässt, dass sie die Größenordnung des Problems nicht genau verstehen, d. H. Dass FTP unter Java / Windows kaputt ist. Ich habe vergessen, das explizit in dem Fehlerbericht anzugeben. Wenn jemand anderes das Gefühl hat, dass es eine höhere Priorität haben sollte, fügen Sie bitte einen Kommentar zum Oracle Fehlerbericht hinzu.

Mir ist gerade aufgefallen, dass du auch für den Fehler "abstimmen" kannst, also gib ihm eine Stimme, wenn du zustimmst, dass es wichtig ist.


15
2017-08-24 04:46



Eine andere Problemumgehung ist das Starten der JVM mit:

-Djava.net.preferIPv4Stack=true

14
2017-11-25 02:05



Dieses Problem kann ohne JDK7 demonstriert werden. Es ist die Firewall in Windows 7, die das FTP-Protokoll blockiert, wenn die Anwendung IPv6-zugeordnete IPv4-Adressen verwendet. Sehen http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7077696für weitere Details und Problemumgehungen.


4
2017-11-14 10:11



Blogged über das Problem hier: http://podzemski.com/2011/09/12/java-7-prevents-ftp-transfers-on-windows-when-firewall-is-on/

Vielleicht wird es zusätzliches Bewusstsein für das Problem schaffen.


2
2017-09-12 14:52



Eigentlich TFTP unter JDK7 auf Windows 7 haben auch das gleiche Problem, der MS-Hotfix löst FTP-Problem, funktioniert aber immer noch nicht für TFTP. Scheint, Oracle sollte das gleiche Problem an MS melden und einen weiteren Hotfix zur Lösung des TFTP-Problems bekommen.


2
2017-12-10 07:47



Der gleiche Fehler wurde hier mit einem Testfall gemeldet: Java 7 Socket-Ausnahmefehler Forum. Es ist ein Problem mit Java 7


1
2017-09-02 20:09



Ich hatte das gleiche Problem mit IDE Eclipse Neon, JAVA 7 und Windows 7 Professional. Versuchen, eine PDF-Datei auf einen FTP-Server hochzuladen. Ich habe es gelöst, indem ich den folgenden Befehl in CMD als Administrator ausgeführt habe:

C: \ Users \ pc01> netsh advfirewall set global StatefulFTP disable

0
2018-03-16 14:55