我需要找到通过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/...
因此身份验证不是问题:/
答案 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服务请求的主题。