Dans une valve Tomcat personnalisée, existe-t-il un moyen d'obtenir contentLength après que le contenu a été gzippé? response.getContentCountLong() renvoie la taille pré-gzippée.Contenu post-GzipLongueur dans Tomcat Custom Valve
1
A
Répondre
0
Avec GZIP, la longueur totale du contenu compressé est imprévisible au préalable. C'est seulement connu quand le dernier bit a été compressé. Dans Tomcat, une réponse GZIP est généralement envoyée directement par morceaux (avec Transfer-Encoding: chunked
) et n'est jamais entièrement mise en mémoire tampon, car il s'agit peut-être d'un problème de mémoire. Donc, je ne vois pas comment obtenir la longueur du contenu autrement que de compter vous-même les octets écrits dans le flux de sortie, ou de tamponner manuellement tout le flux de sortie de la réponse et de l'envoyer manuellement à proximité (ce qui peut être un problème de mémoire).
Questions connexes
- 1. Négociation de contenu sur Tomcat
- 2. custom class = custom + alloc, custom + init
- 3. contenu statique avec Struts2: erreur Tomcat 404
- 4. Comment servir le contenu statique de tomcat
- 5. Compression de contenu sur Apache et Tomcat
- 6. custom AuthorizeAttribute + custom SiteMapProvider related?
- 7. Custom SoftKeyBoard dans Android?
- 8. Configuration de vanne Tomcat personnalisée
- 9. configuration Tomcat
- 10. WPF Custom Control
- 11. Custom YouTube Player
- 12. Custom marshaling TDictionary dans Delphi
- 13. Custom LoginModule dans Websphere 7
- 14. Custom RowGroupHeader?
- 15. Custom AuthorizeAttribute
- 16. custom tablecell valueForSelectedRow problème
- 17. Custom CListCtrl
- 18. Custom EntityNotFoundDelegate
- 19. Custom ObservableCollection
- 20. Custom Scroller
- 21. ScatterViewItem Custom Shape
- 22. Partager un dossier dans tomcat
- 23. Wordpress Custom Posts
- 24. Django Custom Admin
- 25. Filtres dans tomcat
- 26. Cookie dans Tomcat
- 27. Protection CSRF dans Tomcat
- 28. Version Tomcat dans JBoss?
- 29. Custom GridView Pagination
- 30. Rails custom db table
Merci! C'est utile. J'ai maintenant une valve et un GzipOutputFilter personnalisé qui garde la trace du nombre d'octets qu'il a envoyé. Puis je le rince manuellement dans ma valve. Assez désordonné mais ça marche. Je pense qu'un meilleur moyen pourrait être d'ajouter un OutputFilter au pipeline après le GzipOutputFilter et faire le suivi là-bas. Des idées sur comment ajouter un OutputFilter? Est-ce que je pourrais faire ça d'un auditeur? Via JMX? –