2015-04-03 41 views
1

我使用的是JSP網站使用RETSIQRETS智商爲MRIS RETS

,三月2015 做工精細仍然31現在,它不是從RETS服務器檢索數據檢索來自MRIS RETS的MLS數據。

該錯誤消息我得到的是,

com.bigllc.retsiq.simpleclient.RETSClientException:搜索請求失敗 - 與HTTP返回代碼服務器500

這occures當行,

retsSession.search(path, query, null, 1, 0, handler); 

執行

回答

0

W¯¯如果您捕獲響應流,並將其保存到文件中或在瀏覽器中查看它,則可能會發現您正在獲取HTTP 500服務器錯誤頁面,並且進一步它會告訴您,您正在執行他們聲稱「 Cookie中毒「。

錯誤頁面包含一個電子郵件地址,您可以聯繫他們的RETS技術支持,我建議您立即這樣做。

問題歸結爲Apache HttpClient 3.x如何處理cookie。 retsIQ使用3.x版本,默認是RFC 2109兼容 - 這與自1.7以來的RETS規範一致。

MRIS不符合RFC 2109標準。在與他們的支持交談時,他們引用RFC 6265,這是最新的Cookies的RFC。但是,RETS 1.7至1.8非常明確「客戶端必須按照 RFC 2109中的規定實施cookie處理。」更糟糕的是,他們將RFC 2109合規視爲Cookie中毒。

您的困境是,retsIQ將您需要修改CookiePolicy的API隱藏到CoookiePolicy.NETSCAPECookiePolicy.BROWSER_COMPATIBILITY

你有三種選擇(在可行性研究的訂單及控制能力的結果):

  1. 改變你的應用程序中使用libRETS。
  2. 使用反射截取/修改HttpClient的HttpState來修改CookiePolicy。
  3. 等待MRIS停止聲明RFC 2109兼容cookie的格式不正確。
+0

我不明白你的意思是使用反射截取/修改HttpClient的HttpState來修改CookiePolicy。 – 2015-04-06 17:19:31

+0

不管怎樣,謝謝你的回覆。只是想知道我現在可以做什麼。 – 2015-04-06 17:21:59

+0

@sivaprasanna,你可以使用反射來攔截方法調用或訪問否則將是私人成員。看看這個答案:http:// stackoverflow。com/questions/1196192/how-do-i-read-a-private-field-in-java – rbellamy 2015-04-06 23:44:59

0

謝謝大家的回覆和支持。

該問題由MRIS支持人員自己解決。

問題出在他們的服務器不接受RETSIQ庫,現在他們已經修復了它。