Frage

Ich versuche, einige Codes zum Laufen zu bringen, dass ein früherer Entwickler geschrieben hat. Ja, er ging jetzt das Unternehmen. : - (

Ich habe einen JSON RPC-Aufruf aus dem JS-Code gemacht. Die JS alle laufen gut und die Callback-Methode wird ein Objekt zurück (kein Fehler Objekt).

Aber die Methode auf der Java-Klasse wird nie getroffen. Die SMD-Methode allerdings schlagen bekommt.


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>

Ich bin, warum ratlos, oder was ich fehle. Ich habe gelesen, JSON-Plugin über und über.

Ich glaube, ich brauche nur einen weiteren Satz von Augen.

. Hinweis: keine Fehler in der Tomcat-Konsole keine JS Fehler

got Wer irgendwelche Hinweise? Prost Jeff Porter

War es hilfreich?

Lösung

Sie haben vergessen, den Javascript-Code zu enthalten. Aus dem Beispiel:

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

Sind Sie sicher, dass Sie rufen service.updateRowValueForField (Schlüssel, Wert, Feldname) und nicht etwas anderes?

Ferner gibt Ihre Methode eine Lücke (z nichts zurück). Was hast du erwartet zu bekommen?

Andere Tipps

Neue Version behebt meine Probleme.

Google JSON-Plugin

Ich vermute, dass Sie die smd() Methode aktualisieren müssen tatsächlich updateRowValueForField() zu rufen, anstatt einfach sofort zurück. Sieht aus wie die vorherigen Entwickler nie angeschlossen tatsächlich die Methoden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top