سؤال

أنا أستخدم شبكة العموم FTPClient الفصل لاستطلاع موقع FTP بشكل دوري ومحاولة تنزيل ملف. في بعض الأحيان ، يحظر الخيط إلى أجل غير مسمى عند محاولة القراءة من الموقع وتساءلت عما إذا كان أي شخص آخر قد واجه هذه المشكلة ويمكن أن يقدم أي حلول؟

أنا استخدم FTPClientretrieveFileStream(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.

يعتبر

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top