Liferay 6.0.6 JSON API。从外部JavaScript访问

时间:2014-01-02 17:10:22

标签: javascript json web-services liferay

我需要找到通过javascript api从javascript客户端访问liferay门户数据的方法(通过进行AJAX调用)。

我能够找到API的地址:

http://127.0.0.1:8080/tunnel-web/secure/json

也作为SOAP Web服务存在:

http://127.0.0.1/:8080/tunnel-web/secure/axis

验证后,此soap版本返回带有wsdl描述符的服务列表,但json版本不显示任何内容。 (没有错误,http状态为200)

我尝试了一些这样的请求:

http://127.0.0.1:8080/tunnel-web/secure/json?serviceClassName=com.liferay%C2%AD.portal.service.CountryServiceUtil&serviceMethodName=getCountries

它返回404错误: Etat HTTP 404 - / tunnel-web / c / portal / status “资源不可用”

我做错了什么?我如何以JSON格式访问这些数据?

使用 Liferay 6.06

感谢您的帮助:))

编辑:

请注意,我已成功通过身份验证过程。通过浏览器请求时提供登录密码或将其添加到URL:

http://login:password@127.0.0.1:8080/...

因此身份验证不是问题:/

2 个答案:

答案 0 :(得分:1)

没试过!但我认为liferay的安全网络服务需要凭证才能访问。

首先从portal-ext.properties确认您的身份验证类型为

company.security.auth.type=screenName

然后尝试使用以下网址访问:

http://" + [userId / sreenName] + ":" + password + "@<server.com>:<port>/api/secure/axis/" + serviceName

<强> REFERENCE

答案 1 :(得分:0)

好吧我的错了^^

正如您所看到的,我的请求中的ServiceClassName损坏了一些“%C2%AD”字符:

http://login:password@127.0.0.1:8080/tunnel-web/secure/json?serviceClassName=com.liferay%C2%AD.portal.service.CountryServiceUtil&serviceMethodName=getCountries

这就是问题所在。

我通过删除它来修复它:

http://login:password@127.0.0.1:8080/tunnel-web/secure/json?serviceClassName=com.liferay.portal.service.CountryServiceUtil&serviceMethodName=getCountries

有一条线索here:关于那些带有格式化的json Web服务请求的主题。