從XPage內部調用跨域REST服務的最佳方式是什麼,我查看了Social Enabler應用程序,但在這種情況下,我還需要在另一臺服務器上向該服務發佈一串內容,然後獲取JSON響應並對其進行解析。在XPage中發佈跨域REST服務
回答
有幾種選擇:
- 創建生成JSON一個XPage。這就是所謂的xagent(more info)
- 創建的應用範圍至極一個bean包含的代碼直接使用Java的URL連接從TE服務檢索數據並分析在載體或者任何其它Java對象的JSON,你可以工作
- 除了直接在事件代碼中構造URL連接的實例之外,請執行與2相同的操作。
對於這兩個選項2和選項3,你可以使用這樣的代碼
URL url = new URL(http://yourresthot/restapi);
HttpCOnnection conn = url.openConnection();
if (conn.getResponseCode() != 200) {
throw new IOException(conn.getResponseMessage());
}
// Buffer the result into a string
BufferedReader rd = new BufferedReader(
new InputStreamReader(conn.getInputStream()));
StringBuilder sb = new StringBuilder();
String line;
while ((line = rd.readLine()) != null) {
sb.append(line);
}
rd.close();
conn.disconnect();
return sb.toString();
跨域REST服務是不可能從客戶端JavaScript。
有一種解決方法,如果遠程服務支持這種方法,則使用JSONP。它基本上由一個腳本標記組成,該腳本標記引用遠程站點上瀏覽器允許的另一個javascript資源。
除此之外,如果您使用服務器端REST代理,則可以從XPage調用遠程服務。此方法正在用於iNotes,以便與Sametime或Quickr集成。
http://www-10.lotus.com/ldd/lqwiki.nsf/dx/iNotes_proxy_configuration_qd85
本頁面說明如何配置爲您服務的嵌入式代理。
您可以使用java URLConnection使用ssjs獲取json數據,並使用「eval」或「toJSON」您可以將其重複放入並顯示帶有計算字段的結果。
選項1:JSONP 例子:http://openntf.org/XSnippets.nsf/snippet.xsp?id=xsnippets-widget 代碼:http://xsnippets.openntf.org
選項2:多米諾/ iNotes的代理 http://www.openntf.org/Projects/pmt.nsf/DA2F4D351A9F15B28625792D002D1F18/%24file/SocialEnabler111006.pdf第05.01節
選項3:您自己的通用代理插件 http://www.openntf.org/Projects/pmt.nsf/DA2F4D351A9F15B28625792D002D1F18/%24file/SocialEnabler111006.pdf部分05.02
選項4:如上所述。實施服務器端代碼以訪問其他服務器。
- 1. Xpage REST服務控制和服務bean
- 2. WCF REST服務:允許跨域訪問
- 3. 跨域AJAX REST服務HTTP標題
- 4. 使用CORS跨域REST/Jersey web服務
- 5. XPage使用JDBC數據的REST服務
- 6. jQuery ajax跨域發佈到WCF休息服務
- 7. 跨域 - REST API
- 8. 使用easyXDM跨域發佈
- 9. 從.NET發佈到REST Web服務?
- 10. PHP發佈到REST Web服務
- 11. 發佈POST JSON到Jersey REST服務
- 12. 節點Mongo REST服務發佈
- 13. 跨域Web服務調用
- 14. 訪問Web服務 - 跨域
- 15. silverlight服務跨域錯誤
- 16. WCF REST服務支持來自jQuery Mobile的跨域調用
- 17. 使用jQuery跨域ajax到REST服務器
- 18. 跨域jQuery Ajax請求和WCF REST服務
- 19. 發送跨域HTTP發佈HTML表單
- 20. 將json文件發佈到我在REST服務中的java
- 21. 在向跨域服務器發送請求之前跨域jquery.ajax調用正在中止
- 22. Backbone REST API推薦/跨域
- 23. jQuery跨網域發佈到rails網站
- 24. 發佈並重定向到跨域URL
- 25. 如何在跨子網使用Bonjour發佈服務?
- 26. ASP.Net中的跨域發佈失去了表單域
- 27. Yii2 REST +角度跨域域CORS
- 28. 如何JSON數據發佈到web服務REST在AngularJS
- 29. 如何發佈JSON的REST Web服務在codenameone
- 30. 在互聯網上發佈我的REST風格的Web服務
謝謝 - 最後我創建了一個託管bean(我從來沒有這樣做,但看到了如何使用http://per.lausten.dk/blog/2012/02/creating-your-first-managed-bean -for-xpages.html)在那裏我做了POST連接,然後在XPage中,我使用這個bean通過調用它來獲取數據。然後我在SSJS按鈕中處理JSON數據。這現在運作良好。 – Anil 2012-03-28 17:32:22