
問題描述:這個介面代碼是springboot使用feign呼叫其他微服務pdf流檔案,然后在瀏覽器預覽pdf的一個介面,在IDE除錯不加圖上的res.reset()是可以的。但是打包部署到測驗linux上,此介面列印錯誤日志出現getWriter() has already been called for this response的錯誤,在方法第一句加上res.reset()則解決。但是我的response物件并沒有使用getwriter這個方法啊。
請問壇里大拿根本原因是哪里的問題啊。
uj5u.com熱心網友回復:
你自己沒有調getWriter方法,但你不能保證框架在其他地方沒有調啊,也就是框架呼叫outPDF時傳給你的res是怎樣的,你保證不了。所以不能光看自己的代碼,要考慮整個框架的模塊之間是怎么呼叫的,也就是傳入的引數在傳入前是什么狀態,也要弄清楚。uj5u.com熱心網友回復:
謝謝回復,有道理,我也想的是這點。你的意思是,框架的httpservletResponse 回傳給我的這個res物件,是否在方法之前已經呼叫過writer方法吧。這個我也看代碼了,確實是沒找到。 這句res.reset()是第一句。我理解的這個response物件傳過來之前調過writer,但是有個問題。 我這個代碼,不加res.reset()在本地是可以順利調的,但是放在linux上,就不行了。必須加上這句。 另外同樣代碼,放在同事的另一個服務上,不加res.reset這句,部署在linux上,還是可以跑通。很糾結。。。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/256533.html
標籤:Web 開發
