(Voir la question connexe: How do I report an error midway through a chunked http repsonse without closing the connection?)Comment puis-je signaler une erreur à mi-chemin d'une réponse http chunked si je souhaite fermer la connexion?
Dans mon cas, la première chose à faire est que le navigateur affiche un message d'erreur. Peu importe comment non informatif.
La fermeture du ServletResponse outputStream ne fonctionne évidemment pas. Je ne lance pas d'exception, même si je ne ferme pas en premier (testé sur Tomcat 6.0.16). Je pense que ce que je veux, c'est soit un paquet RST, FIN au milieu d'un morceau, ou des en-têtes de morceaux mal formés. Après cela, je peux m'inquiéter de la façon dont les différents navigateurs réagissent.
Edité pour clarification: Ceci est pour un téléchargement de fichier, peut-être plusieurs gigaoctets de données binaires. Je ne peux pas m'assurer que toutes les données peuvent être lues ou décryptées avec succès avant que je doive commencer à en envoyer une partie.
Citation? Où la définition de l'API Servlet indique-t-elle ce que le conteneur doit faire lorsque ma servlet lance SomeGenericError après le point de validation? Je comprends qu'il ne peut pas changer le code de réponse HTTP qui est déjà sur le fil, mais pourquoi devrait-il écrire un morceau de longueur nulle avant la fermeture. – Darron
Désolé, je ne voulais pas dire que la spécification interdit le comportement que vous voulez, simplement qu'il n'y a aucun moyen de l'atteindre avec les méthodes disponibles dans la version actuelle de l'API. – johnstok