【问题标题】:Error while running the HTTP adapter in IBM Worklight在 IBM Worklight 中运行 HTTP 适配器时出错
【发布时间】:2015-04-06 12:59:45
【问题描述】:

我创建了一个 HTTP 适配器来调用一个添加 2 个数字的过程。它是发送输入和显示输出的基本程序。下面是我的代码。

HTML:

First Integer: <input type="text" id="firstint"/>
Second Integer: <input type="text" id="secondint"/>
<input type="button" onclick="submitInput()" value="Submit"/>

DemoHTTPAdapter-impl.js:

    function submitInput() {
        var invocationData = {
            adapter : 'DemoHTTPAdapter',
            procedure : "getDemoAdd",
            parameters : [$('#firstint').val(),$('#secondint').val()]
        };

        var options = {
            onSuccess : success,
            onFailure : failure
        };

        WL.Client.invokeProcedure(invocationData, options);
    }

function getDemoAdd(firstint, lastint) {
    return {
        result : com.ibm.demo.DemoAdd.addTwoInteger(firstint,secondint)
    }
}

该过程是通过 DemoAdd.java 中的 java 代码调用的,如下所示:

package com.ibm.demo;
import java.util.logging.Logger;

public class DemoAdd {  
    private static final Logger logger = Logger.getLogger(DemoAdd.class.getName());

public static int addTwoInteger(int afirstInt, int aSecondInt) {        
    logger.info("Add Method Invoked with Parameter " + afirstInt + " & " + aSecondInt);
    return (afirstInt + aSecondInt);
}

我在运行 html 时遇到错误。

submitInput() 未定义。

而我已经定义了 submitInput() 方法。

【问题讨论】:

    标签: ibm-mobilefirst worklight-adapters


    【解决方案1】:

    您已将 submitInput 函数放在适配器实现文件 (DemoHTTPAdapter-impl.js) 中,而不是放在 common\js\main.js 文件中。

    您需要区分适配器范围(驻留在 Worklight Server 上,因此您不能直接调用它)与驻留在应用程序本身中的应用程序范围。

    因为它们的作用域不同,解析器试图找到submitInput,但找不到。

    应用程序的 JavaScript 需要调用 Worklight 框架才能将请求发送到服务器以调用适配器。

    将以下代码移至您的 main.js:

    function submitInput() {
        var invocationData = {
            adapter : 'DemoHTTPAdapter',
            procedure : "getDemoAdd",
            parameters : [$('#firstint').val(),$('#secondint').val()]
        };
    
        var options = {
            onSuccess : success,
            onFailure : failure
        };
    
        WL.Client.invokeProcedure(invocationData, options);
    }
    

    【讨论】:

    • 您好,感谢您的回复!我在显示适配器的值时遇到问题。就像,如果我想在我的 HTML 上显示 java 代码中整数的加法。最好的方法是什么?
    • 首先更正您的应用程序中的上述基本缺陷,然后将此问题标记为已回答,因为您的评论与此处提出的问题无关。然后首先搜索堆栈溢出,因为关于如何在应用程序中显示适配器的结果的问题已经被问过很多次了。
    猜你喜欢
    • 2016-01-03
    • 1970-01-01
    • 2013-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多