اكتشف أو منع NET FTPCLIENT من منع القراءة
-
20-09-2019 - |
سؤال
أنا أستخدم شبكة العموم FTPClient
الفصل لاستطلاع موقع FTP بشكل دوري ومحاولة تنزيل ملف. في بعض الأحيان ، يحظر الخيط إلى أجل غير مسمى عند محاولة القراءة من الموقع وتساءلت عما إذا كان أي شخص آخر قد واجه هذه المشكلة ويمكن أن يقدم أي حلول؟
أنا استخدم FTPClient
'س retrieveFileStream(String)
طريقة للحصول على مقبض إلى inputstream ، والتي أحاول القراءة منها بعد ذلك. فيما يلي تتبع مكدس جزئي للخيط المحظور.
"FTP File Poll Thread" prio=10 tid=0x083b0800 nid=0x6324 runnable [0x65b5b000..0x65b5beb0]
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
- locked <0x5c851928> (a java.io.BufferedInputStream)
at java.io.FilterInputStream.read(FilterInputStream.java:66)
at java.io.PushbackInputStream.read(PushbackInputStream.java:122)
at org.apache.commons.net.io.FromNetASCIIInputStream.__read(FromNetASCIIInputStream.java:75)
at org.apache.commons.net.io.FromNetASCIIInputStream.read(FromNetASCIIInputStream.java:170)
at java.io.FilterInputStream.read(FilterInputStream.java:116)
المحلول 2
كان kludge الذي انتهى بي الأمر هنا هو تحديد موعد لمهمة لرفع تنبيه إذا استغرقت عملية FTP أطول من x ثواني. لقد وجدت بالفعل Javanioftp على SourceForge ولكن في وضعي لا يضمن ذلك التطوير في تبديل العملاء.
نصائح أخرى
Java.io يحظر ، تحتاج إلى استخدام حزمة java.nio. لم تستخدم FTP مع Java.nio ، ولكن افترض أنه يجب أن يعمل لأن HTTP يمكنه العمل مع java.nio.
يعتبر