2014-06-13 58 views
0

我使用的彈簧DefaultPropertiesPersister加載託管輸入流中另一臺服務器上我的屬性,如下圖所示:DefaultPropertiesPersister加載和處理HTTP錯誤

Resource resource = this.resourceLoader.getResource(url); 
InputStream is = resource.getInputStream(); 
propertiesPersister.load(props, new InputStreamReader(is, encoding)); 

如果URL返回類似404頁的HTTP錯誤未找到或500內部服務器錯誤,我該如何處理。

我在問,因爲在出​​現404和500錯誤的情況下,服務器將返回一個錯誤頁面,該頁面可以轉換爲InputStream,這使得它成爲PropertiesPersister的有效輸入。

我想抓住和處理HTTP錯誤,請幫助。

回答

0

這取決於您使用的http提供程序。

默認情況下,當您打開HTTP URL作爲資源時,Spring Framework使用方法URL.openConntection().getInputStream()。返回取決於您在JVM中使用的HTTP協議解析器。

如果使用Sun JVM或OpenJDK的,默認的HTTP URL處理程序是sun.net.www.protocol.http.Handler是檢查從服務器返回的代碼,如果代碼是404,然後拋出一個FileNotFoundException,如果一個500錯誤是從服務器返回,然後引發通用的IOException

如果你想對通信有更多的控制,那麼你可以使用API​​來使請求更加受控,如Http Client from Apache