如何在Liferay portlet中调用外部REST Web服务?

时间:2013-12-03 21:43:54

标签: liferay liferay-6

我有一个公开REST网络服务的网络应用程序。 我想使用javascript \ jQuery(ajax)调用这些Web服务 基本上我想渲染REST服务返回的内容&执行CRUD openations(将调用外部Web应用程序的其他REST服务)

任何人都有一些指示,文章,示例代码,说明如何做到这一点?

由于

2 个答案:

答案 0 :(得分:2)

如果我正确理解您的问题,那么在调用外部Web服务时没有Liferay特定的内容,因此您可以使用您在网络上找到的任何教程。当你提到你想要使用jquery时,我假设这些调用将来自浏览器 - 你需要在Liferay中做的唯一事情是确保加载jquery - 为此你可以使用你的主题:编辑portal-normal.vm并包含加载jquery的行。或者,当Liferay附带AlloyUI / YUI时,您可以将jQuery作为AUI的模块加载,其模块为yQuery

答案 1 :(得分:2)

下面是一个示例代码,使用javascript \ jQuery在portlet中调用REST webservices(使用基本授权标头调用Portal服务):


<%@ include file="init.jsp"%> $(document).on('ready',function(){ var username ="test@liferay.com"; var password ="test"; function make_base_auth(user, password) { var tok = user + ':' + password; var hash = btoa(tok); return "Basic " + hash; } $.ajax({ url: 'http://localhost:8080/LiferayJSONWebservices-portlet/api/jsonws/employee/get-employee/employee-id/1', dataType: "json", type: "get", success: function(data){ alert(data.employeeName); }, beforeSend: function(xhr){ xhr.setRequestHeader('Authorization',make_base_auth(username, password)); }, complete: function(){ }, error: function(){ } });

            });
            </script>