使用IBM MobileFirst 7.1
我创建了一个非常简单的混合项目。然后添加了一个非常简单的java适配器:
@Path("/hello")
public class BrokenAdapterResource {
@GET
@Produces("text/plain")
public String hello() {
return "Hope keeps man alive....!";
}
}
并创建了MobileFirst环境:"桌面浏览器网页"。我试着打电话给适配器。当我从"普通"它按预期工作。但是当我从"桌面"它不起作用:
var resourceRequest = new WLResourceRequest(
"/adapters/BrokenAdapter/hello",
WLResourceRequest.GET);
resourceRequest.send().then(
function(result){
var data = JSON.parse(JSON.stringify(result))
var message = data['responseText']
$("#message").text(message) //Set the value in message div tag
},
function(error){
$("#message").text(JSON.stringify(error))
}
);
In" common"我得到了预期的结果:Hope keeps man alive....!
。
在"桌面"我总是得到{"status":200,"responseHeaders":{},"responseText":"undefined","errorCode":"API_INVOCATION_FAILURE","errorMsg":"Unsupported environment","invocationContext":null}
我想知道在这种情况下会出现什么问题?这是调用资源的正确方法吗?
我创建了一个展示此内容的示例项目https://hub.jazz.net/project/ignacio4d/BrokenProject/overview
答案 0 :(得分:1)
具体来说:
MobileFirst应用程序可以使用 WLResourceRequest REST API。 REST API适用于所有适配器和 外部资源,并在以下混合中受支持 环境:iOS,Android,Windows Phone 8和Windows 8。
如果您的应用程序支持其他混合环境,例如 BlackBerry,Mobile Web或桌面浏览器see the tutorial for IBM MobileFirst Platform Foundation 6.3。
换句话说,Java适配器使用WLResourceRequest。 Java适配器不支持桌面浏览器环境。解决方法是使用支持WL.Client.invokeProceudre
和WLResourceRequest
的JavaScript适配器,这样您就可以在桌面浏览器环境中使用常规WL.Client.invokeProcedure
。