如何在Liferay portlet中调用外部REST Web服务?
我有一个公开REST web服务的web应用程序。 我想使用javascript\jQuery(ajax)调用这些web服务 基本上我想呈现REST服务返回的内容&执行crudopenations(这将调用外部web应用程序的其他REST服务) 有人有一些指针、文章和示例代码来演示如何做吗如何在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
谢谢如果我正确理解了您的问题,那么调用外部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>