在 Struts2 中使用 JSON RPC 时从未调用过 Java 方法

标签 java javascript json struts2 json-rpc

我正在尝试让以前的开发人员编写的一些代码正常工作。 是的,他现在离开了公司。 :-(

我有一个从 JS 代码进行的 JSON RPC 调用。 JS 一切正常,回调方法返回一个对象(不是错误对象)。

但是 Java 类上的方法永远不会被命中。 不过 smd 方法确实受到了影响。


public String smd()
{
   return SUCCESS; // break point reaches here
}

@SMDMethod
public void updateRowValueForField(String key, String value, String fieldname)
{
   // We never get into this method.
}

<package name="EntryBarRPC" namespace="/" extends="star-default">

    <action name="ebToggleSelection" class="eboggleSelectionAction" method="smd">
        <interceptor-ref name="jsonStack">
            <param name="enableSMD">true</param>
        </interceptor-ref>
        <result type="json">
            <param name="enableSMD">true</param>
        </result>
    </action>
</package>

我很困惑为什么,或者我错过了什么。 我读过JSON plugin page一遍又一遍。

我想我只是需要另一双眼睛。

注意:Tomcat 控制台没有错误,没有 JS 错误。

有人有线索吗? 干杯 杰夫·波特

最佳答案

您忘记包含 JavaScript 代码。从示例来看:

<s:url id="smdUrl" namespace="/nodecorate" action="SMDAction" />
<script type="text/javascript">
    //load dojo RPC
    dojo.require("dojo.rpc.*");

    //create service object(proxy) using SMD (generated by the json result)
    var service = new dojo.rpc.JsonService("${smdUrl}");

    //function called when remote method returns
    var callback = function(bean) {
        alert("Price for " + bean.type + " is " + bean.price);
    };

    //parameter
    var bean = {type: "Mocca"};

    //execute remote method
    var defered = service.doSomething(bean, 5);

    //attach callback to defered object
    defered.addCallback(callback);
</script>

您确定您调用了 service.updateRowValueForField(key, value, fieldname) 并且没有什么不同吗?

此外,您的方法返回 void(例如不返回任何内容)。你期望得到什么?

关于在 Struts2 中使用 JSON RPC 时从未调用过 Java 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/219055/

相关文章:

java - Springframework中Elasticsearch属性的相似性

java - 数据库行上的锁的范围(简单)

javascript - HtmlUnit JavaScript : Cannot read property "style" from null

javascript - Angular:你能提取文本responseType的状态吗?

javascript - 使用ReactJS和map显示JSON多维数组数据

Android M 应用链接验证失败

java - Android (libGDX) 使用 PHP 服务器端脚本与 mySQL 进行 http 连接

javascript - Three.js:使用场景对象子集进行光线转换

javascript - 如何在 Jquery Javascript 中使用嵌套 if else

javascript - 如何从axios响应中获取数组值