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

如何在Liferay portlet中调用外部REST Web服务?,liferay,liferay-6,Liferay,Liferay 6,我有一个公开REST web服务的web应用程序。 我想使用javascript\jQuery(ajax)调用这些web服务 基本上我想呈现REST服务返回的内容&执行crudopenations(这将调用外部web应用程序的其他REST服务) 有人有一些指针、文章和示例代码来演示如何做吗 谢谢如果我正确理解了您的问题,那么调用外部web服务并没有Liferay特有的功能,因此您可以使用在web上找到的任何教程。正如您提到的,您希望使用jquery,我假设这些调用将从浏览器中进行-在Lifera

我有一个公开REST web服务的web应用程序。 我想使用javascript\jQuery(ajax)调用这些web服务 基本上我想呈现REST服务返回的内容&执行crudopenations(这将调用外部web应用程序的其他REST服务)

有人有一些指针、文章和示例代码来演示如何做吗


谢谢

如果我正确理解了您的问题,那么调用外部web服务并没有Liferay特有的功能,因此您可以使用在web上找到的任何教程。正如您提到的,您希望使用jquery,我假设这些调用将从浏览器中进行-在Liferay中,您需要做的唯一一件事是确保jquery已加载-为此,您可以使用您的主题:编辑
portal normal.vm
,并包括要加载jquery的行。或者,由于Liferay附带了AlloyUI/YUI,您可以将jQuery作为AUI的模块加载到它的模块中,这里是一个使用javascript\jQuery调用portlet内部REST webservices的示例代码(使用基本授权头调用门户服务):


$(文档).on('ready',function(){ 变量用户名=”test@liferay.com"; var password=“test”; 函数make_base_auth(用户、密码){ var tok=用户+':'+密码; var hash=btoa(tok); 返回“基本”+散列; } $.ajax({ url:“”, 数据类型:“json”, 键入:“获取”, 成功:功能(数据){ 警报(data.employeeName); }, beforeSend:function(xhr){xhr.setRequestHeader('Authorization',make_base_auth(username,password)); }, 完成:函数(){ }, 错误:函数(){ } }))

});

恐怕你的问题太笼统和抽象了。您需要更加具体,并提供更多信息,如1)您使用的是什么类型的Portlet(MVC/Spring/JSF/Struts),2)是否需要帮助使Portlet与REST服务或整个请求控制器链通信?也许您需要帮助来决定使用哪些库3)给我们一个Liferay版本不会有什么坏处1)portlet将使用LDS(Liferay Developer Studio)和spring进行开发2)是的。Portlet应该通过Ajax调用外部REST服务来与外部REST服务通信3)库将是jQuery或纯javascript 4)Liferay版本是6.1.30I将使用view.jsp放弃对REST服务的调用。这似乎是一个可行的解决方案。是的,但是仅仅因为你把它放在一个portlet上,调用就没有技术上的区别——它就像你从一个非portlet资源调用一样工作。

<%@ 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>