76 votes

Java 7 empêche les transferts FTP sur Windows Vista et 7, si le pare-feu est activé. Des idées?

Java 7 empêche les transferts FTP sur Windows Vista et 7.

En FTP, avant qu'un fichier est transféré d'un PORT ou d'une commande PASV doit être envoyé. Dès que l'une des commandes sont envoyées le Pare-feu Windows ferme le socket qui l'a envoyé. Cela se produit uniquement si le pare-feu est activé et une exception pour java.exe est absent. Je soupçonne que ce problème est lié à Java 7 à l'aide de la nouvelle Vista de la pile IP.

Quelqu'un a une idée comment résoudre ou contourner ce problème? Nous sommes à la distribution d'un Java FTP bibliothèque donc, de toute évidence, nous ne pouvons pas ajouter des exceptions de nous-mêmes.

Exception:

java.net.SocketException: Permission denied: recv failed

La version JRE info:

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)

SUIVI 1 (14 novembre 2011): Oracle a analysé le problème et ont trouvé que cela semble être un bug dans Windows Pare-feu et/ou de la pile IPv6. Ils ont réussi à reproduire le problème avec un natif C (c'est à dire non-Java) application, donc c'est une preuve solide que le bug n'est pas en Java. Ils ont informé Microsoft, donc la balle est dans leur camp maintenant. Plus de détails peuvent être trouvés à http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7077696

SUIVI 2 (27 juillet 2012): Un (très utile) de contact à l'Oracle m'a dit que le problème a été augmenté au niveau de Microsoft. Nous espérons voir des résultats rapidement.

Un SUIVI de 3 (15 août 2012): Notre contact à Oracle nous a dit que Microsoft a accepté le bug et est dans le processus de tri.

SUIVI 4 (21 septembre 2012): Microsoft a publié un correctif qui est actuellement testée par Oracle. Aucun mot sur une date de sortie.

SUIVI 5 (11 octobre 2012): Enfin le succès! Microsoft a publié un correctif. Ils impliquent que le correctif sera inclus dans un général mise à jour logicielle dans l'avenir:

"si vous n'êtes pas gravement touché par ce problème, nous vous recommandons d'attendre la prochaine mise à jour de logiciel qui comprendra ce correctif."

88voto

Chris Points 669

Le problème est causé par la dynamique FTP filtre de pare-feu. Comme solution de contournement, vous pouvez la désactiver en exécutant netsh advfirewall set global StatefulFTP disable avec des droits d'administrateur.

15voto

HansA Points 655

J'ai envoyé un rapport de bug à Oracle, voir bugs.sun.com/bugdatabase/view_bug.do?bug_id=7077696

Ils ont marqué la priorité faible, ce qui me fait penser qu'ils n'ont pas tout à fait comprendre l'ampleur du problème, à savoir que FTP est cassé sur Java/Windows. J'ai oublié d'indiquer que explicitement dans le rapport de bug. Si quelqu'un d'autre se sent comme il doit avoir une priorité plus élevée s'il vous plaît ajouter un commentaire à l'Oracle de rapport de bogue.

J'ai juste remarqué que vous pouvez aussi "voter" pour le bug, donc s'il vous plaît donner un vote si vous êtes d'accord qu'il est important.

15voto

prunge Points 8131

Une autre solution est de lancer la JVM avec:

-Djava.net.preferIPv4Stack=true

14voto

lyaffe Points 448

Nous avons testé le correctif Windows http://support.microsoft.com/kb/2754804 et a confirmé qu'il n'a résoudre le problème.

5voto

Alan Points 1112

Ce problème peut être démontrée sans JDK7, c'est le pare-feu de Windows 7 bloquer le protocole ftp lorsque l'application est à l'aide de IPv6 mappées adresses IPv4. Voir http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7077696 pour plus de détails et des solutions de contournement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X