在"桌面"中调用适配器不起作用

时间:2015-09-01 05:42:21

标签: ibm-mobilefirst mobilefirst-adapters

使用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

1 个答案:

答案 0 :(得分:1)

请参阅以下教程:https://developer.ibm.com/mobilefirstplatform/documentation/getting-started-7-1/foundation/server-side-development-category/invoking-adapter-procedures-hybrid-client-applications/

具体来说:

  

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.invokeProceudreWLResourceRequest的JavaScript适配器,这样您就可以在桌面浏览器环境中使用常规WL.Client.invokeProcedure