2012-01-23 21 views
6

Próbuję pobrać plik zip, ale dostaję Stream Exit zamknięty. Kiedy korzystam z funkcji swing gui, otrzymuję tę erro, ale jeśli korzystam z konsoli, nie ma problemu. Dlaczego otrzymuję ten wyjątek? Jak mogę to naprawić?Dlaczego otrzymuję java.io.IOException: Stream jest zamknięty?

To jest mój kod:

URLConnection conn = url.openConnection(); 
InputStream in = conn.getInputStream(); 
FileOutputStream out = new FileOutputStream(destination.getPath()); 
byte[] b = new byte[1024]; 
int count; 

while ((count = in.read(b)) >= 0) { 
    out.write(b, 0, count); 
} 
out.flush(); 
out.close(); 
in.close(); 
OptionPane.showMessageDialog(null, "Download is finished"); 
} catch (HttpUnauthorizedException e) { 
    JOptionPane.showMessageDialog(null, "Proxy or Server Authentication Required"); 
} catch (IOException e) { 
    System.out.println(e.getMessage()); 
} 

to ślad stosu

java.io.IOException: Stream closed. 
at java.net.PlainSocketImpl.available(PlainSocketImpl.java:428) 
at java.net.SocketInputStream.available(SocketInputStream.java:217) 
at java.io.BufferedInputStream.read(BufferedInputStream.java:321) 
at weblogic.net.http.KeepAliveStream.read(KeepAliveStream.java:86) 
at java.io.FilterInputStream.read(FilterInputStream.java:90) 
at be.azvub.ext.bcfidownloder.Download.downloadZipFile(Download.java:130) 
at be.azvub.ext.bcfidownloder.Download.authorize(Download.java:91) 
at be.azvub.ext.bcfidownloder.BcfiDownloadPanel$4.mouseClicked(BcfiDownloadPanel.java:110) 
at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:212) 
at java.awt.Component.processMouseEvent(Component.java:5520) 
at javax.swing.JComponent.processMouseEvent(JComponent.java:3129) 
at java.awt.Component.processEvent(Component.java:5282) 
at java.awt.Container.processEvent(Container.java:1966) 
at java.awt.Component.dispatchEventImpl(Component.java:3984) 
at java.awt.Container.dispatchEventImpl(Container.java:2024) 
at java.awt.Component.dispatchEvent(Component.java:3819) 
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212) 
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3901) 
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822) 
at java.awt.Container.dispatchEventImpl(Container.java:2010) 
at java.awt.Window.dispatchEventImpl(Window.java:1791) 
at java.awt.Component.dispatchEvent(Component.java:3819) 
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463) 
at be.azvub.webutil.gui.WebEventQueue.dispatchEvent(WebEventQueue.java:34) 
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242) 
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163) 
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157) 
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149) 
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110) 
+0

* * W przypadku, gdy nie otrzymasz wyjątek? –

+12

ślad stosu proszę –

+0

Otrzymuję tutaj wyjątek: 'while ((count = in.read (b))> = 0) { out.write (b, 0, liczba); } ' – itro

Odpowiedz

4

Wyjątek ten zazwyczaj oznacza, że ​​połączenie zostało nagle zamknięte. Patrzę na dzienniki na serwerze, aby sprawdzić, czy wystąpił błąd.

0

Rozwiązałem go, gdy usunięto ten tag Primefaces z mojego xhtml.

<p:media ... 

źródło

http://www.primefaces.org/showcase/ui/multimedia/media.xhtml 
Powiązane problemy