2009-03-13 5 views
3

Je rencontre cette erreur après un certain nombre de demandes https. Quelqu'un at-il une idée de ce qui pourrait être la raison? Il semble être lié à SSL. Mais auparavant, cela fonctionnait bien. Je ne comprends vraiment pas ce qui aurait pu causer ce problèmeErreur lors de la validation de la réponse java.io.IOException: tube rompu sur sun.nio.ch.FileDispatcher.write0 (méthode native)

Erreur commiting responsejava.io.IOException: Broken pipe à sun.nio.ch.FileDispatcher.write0 (Native Method) à sun.nio.ch .SocketDispatcher.write (SocketDispatcher.java:29) à sun.nio.ch.IOUtil.writeFromNativeBuffer (IOUtil.java:104) à sun.nio.ch.IOUtil.write (IOUtil.java:75) au soleil .nio.ch.SocketChannelImpl.write (SocketChannelImpl.java:302) au com.sun.enterprise.server.ss.ASOutputStream.write (ASOutputStream.java:120) au com.sun.net.ssl.internal.ssl .OutputRecord.writeBuffer (OutputRecord.java:283) à com. sun.net.ssl.internal.ssl.OutputRecord.write (OutputRecord.java:272) à com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord (SSLSocketImpl.java:666) à com.sun. net.ssl.internal.ssl.AppOutputStream.write (AppOutputStream.java:59) au org.apache.coyote.http11.InternalOutputBuffer.commit (InternalOutputBuffer.java:602) au com.sun.enterprise.web.connector. grizzly.ProcessorTask.action (ProcessorTask.java:721) à org.apache.coyote.Response.action (Response.java:188) à org.apache.coyote.Response.sendHeaders (Response.java:380) à org.apache.coyote.tomcat5.OutputBuffer.doFlush (OutputBuffer.java:357) à org.apache.coyote.tomcat5.OutputBuffer.close (OutputBuffer.java:318) à org.apache.coyote.tomcat5.CoyoteResponse. ailette ishResponse (CoyoteResponse.java:528) au org.apache.coyote.tomcat5.CoyoteAdapter.service (CoyoteAdapter.java:192) au com.sun.enterprise.web.connector.grizzly.ProcessorTask.doProcess (ProcessorTask.java: 604) à com.sun.enterprise.web.connector.grizzly.ProcessorTask.process (ProcessorTask.java:475) à com.sun.enterprise.web.connector.grizzly.ProcessorTask.doTask (ProcessorTask.java:426) à com.sun.enterprise.web.connector.grizzly.TaskBase.run (TaskBase.java:281) à com.sun.enterprise.web.connector.grizzly.WorkerThread.run (WorkerThread.java:83

Répondre

3

Je ne sais pas à propos de sun.nio.ch. mais ...

Ceci est une erreur ennuyeuse standard que vous obtenez parfois dans les applications Web Java. Vous obtenez cette erreur lorsque vous demandez une URL, puis vous arrêtez d'arrêter dans votre navigateur ou de cliquer sur une autre URL. L'application se plaint qu'elle n'a pas été en mesure de vous envoyer la réponse complète.

0

Une connexion Java NIO est une connexion de données unidirectionnelle entre deux threads. Un tuyau a un canal source et un canal puits. Vous écrivez des données dans le canal du récepteur. Ces données peuvent ensuite être lues à partir du canal source.

Maintenant à venir au problème. Chaque fois que le canal du récepteur est plein (les lectures ne sont PAS assez rapides pour laisser de l'espace dans le tampon), le tuyau est fermé !! Donc toute écriture venant après ce point échouera.

+2

Cette erreur n'a rien à voir avec les tubes NIO. Le message d'erreur provient du système d'exploitation et fait référence à l'écriture dans une connexion de tuyau ou de socket qui a déjà été fermée par le pair. Et le deuxième paragraphe est un non-sens complet. Lorsque le tuyau est plein, l'expéditeur bloque. La réponse est complètement incorrecte. – EJP

Questions connexes