2010-05-05 9 views
10

Je reçois l'erreur suivante:Que signifie l'exception "javax.servlet.jsp.JspException: Broken pipe"?

 
javax.servlet.jsp.JspException: Broken pipe 

Maintenant, je l'ai vu des questions/réponses avec égards à l'exception de socket, mais cette erreur provient d'un package différent. Toute aide est grandement appréciée.
BTW, je vois beaucoup de ces erreurs dans un Web Wews Struts application de Struts et je pense qu'il a à voir avec les utilisateurs finaux fermant leur navigateur Web avant que la page recharge/exécute l'étape suivante (transaction de base de données qui prend un peu de temps à exécuter, de 30 secondes à 4 minutes).

Répondre

10

I am thinking that it has to do with end users closing their web browser before the page reloads/executes the next step

Vous avez entièrement raison. Cette exception sera levée lorsque le client annule la demande en cours en quittant la page, en fermant l'onglet/la fenêtre, en actualisant la requête, etc. tandis que la demande est toujours en cours d'exécution. En d'autres termes, le client a brusquement fermé la connexion et le côté serveur ne peut plus écrire/vider un octet. Il a normalement un IOException comme cause principale, habituellement dans la saveur d'une sous-classe spécifique de servletcontainer comme ClientAbortException dans le cas de Tomcat et de clones. Si vous examinez l'intégralité de la pile dans les journaux du serveur, vous la trouverez quelque part en bas.

1

Je suis sûr que le paquet sous-jacent utilise des tuyaux en interne pour transférer le résultat de a à b. Maintenant B (le ServletOutputStream) se ferme, et l'autre extrémité du tuyau le notifie en lançant cette exception.

1

HTTPRequest est géré par une chaîne de servlets connectées entre elles à l'aide de tubes. Lorsque le navigateur abandonne la connexion et que le socket est fermé, il est intercepté par la couche de gestion de chaînage de servlet. La servlet attrape probablement indirectement l'exception de fermeture de socket et la lance comme le tuyau brisé. Regardez toute exception enveloppée pour plus de détails.

-1

Cela se produit lorsque l'utilisateur clique sur arrêter, ou se déconnecte, ou annule prématurément la connexion, Nous pouvons ignorer cette exception.