在Cors啓用的jBoss服務器中使用resteasy-jaxrs時,我發現了一些奇怪的東西。這裏的設置:RestEasy在資源引發異常時重置所有頭文件
我們的服務器已經啓用了transactcompanycompany.com的CorsFilter(v1.3.2)作爲servlet過濾器來啓用CORS並將相應的CORS頭添加到HttpServletResponse對象中。
服務器本身正在使用resteasy-jaxrs(v2.3.2.Final)來爲JSON端點提供電源,以便爲我們的應用程序供電,顯然它運行在單獨的域上。
的問題是,如果我的終點方法之一生成任何類型的異常(NPE,UnauthorizedException,InternalServerErrorException),爲準備應對的一部分,RestEasy的進行呼叫
(HttpServletResponse)response.reset()
它清除了我CORS標題。這會導致Chrome正常工作,就好像該請求應該被取消一樣。這對於我的前端開發者來說非常不方便,他們需要這些錯誤代碼。
兩個問題:
- 爲什麼會RestEasy的要清除這些頭?
- 有沒有其他人跑過這個,並有任何解決方法?
真時,我可以重置一個異常映射表頭,但它重複了CORS servlet過濾器完成的邏輯。我寧願不這樣做,但它可能是唯一的方法。您的意見暗示其他一些配置不正確,但我追蹤了代碼並發現任何「未捕獲」異常包含對response.reset()的調用。 – rtcarlson