Ich versuche, eine Transaktion pro Anfrage in meiner Spring-Boot-Anwendung zu implementieren. Ich habe einen Filter mit HIGHEST_PRECEDENCE Reihenfolge, der eine Transaktion öffnet, lässt andere Filter und die Dienste der App ihre Arbeit machen und die Transaktion festlegt. Wenn jedoch die Übertragung fehlschlägt, die Servlet-Antwort bereits geschrieben und festgeschrieben wurde (mit einem Erfolgscode), kann ich ihren Status und Nachrichtentext nicht ändern, um Informationen über den Fehler bereitzustellen.Eine Transaktion pro Anfrage - Servlet-Antwort ist zu früh festgeschrieben
Ich brauche die Servlet-Antwort in meinem Filter modifizierbar sein, aber etwas verpflichtet es.
Ich habe jackson commits deaktiviert, aber gleich nach dem letzten Filter (WsFilter) wird die Nachricht trotzdem commited. Die Puffergröße ist so groß wie möglich. Ich denke, der eingebettete Tomcat wird standardmäßig nach WsFilter festgeschrieben.
Ich habe auch versucht, einen Wrapper und Verbieten Flush, bis eine boolesche Flag auf True in meinem Transaktionsfilter festgelegt ist, aber null Zeiger Ausnahme occastres - coyoteResponse ist null.
Wie behalte ich eine Antwort nicht festgeschrieben?
Sie brauchen nichts zu gewährleisten ServletResponse geschrieben wird, bevor alle Commits – ControlAltDel
Teilen Sie den Wrapper-Code gelungen – Mudassar