J'ai un serveur Java qui accepte les connexions SSL en utilisant JSSE et utilise un simple format de message XML dans le flux. Je voudrais que le serveur lise un message complet et envoie une réponse. Cela s'avère assez difficile car org.xml.sax.XMLReader veut lire le flux entier et ensuite appeler close(). Je sais que cela semble étrange, mais en Java 6 avec le fournisseur Sun JSSE cela ferme vraiment les deux extrémités de la SSLSocket, donc aucun message ne peut revenir en arrière. J'ai essayé d'utiliser la méthode shutdownOutput() de Socket du côté client, mais cela n'est pas supporté par JSSE.Fin d'un flux XML sur une connexion JSSE?
Ma solution était de passer un InputStream enveloppé dans une classe personnalisée qui ignore silencieusement les demandes de fermeture et indique que le flux est fermé lorsqu'il rencontre la première ligne vide. Cela contraint le XML au-delà de ce qui est normalement valide, mais le client peut facilement filtrer les lignes vides dans l'entrée si nécessaire. Y a-t-il une meilleure solution?