Pergunta

Eu estou tentando obter algum código de trabalho que um desenvolvedor anterior escreveu. Sim, agora ele deixou a empresa. : - (

Eu tenho uma chamada RPC JSON a ser feita a partir do código JS. A JS todas as corridas bem e o método de retorno recebe um objeto de volta (não um objeto de erro).

Mas o método na classe Java não é atingido. O método SMD é atingido embora.


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>

Estou perplexo quanto ao porquê, ou o que eu estou sentindo falta. Eu li JSON plug-in página mais e mais.

Eu acho que eu só preciso de um outro conjunto de olhos.

Nota:. Nenhum erro no console Tomcat, sem erros JS

Alguém tem alguma pista? Felicidades Jeff Porter

Foi útil?

Solução

Você se esqueceu de incluir o código javascript. A partir do exemplo:

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

Você tem certeza que chamar service.updateRowValueForField (chave, valor, nome do campo) e não algo diferente?

Além disso, o método retorna um vazio (por exemplo, não retorna nada). O que você espera obter?

Outras dicas

A nova versão corrige meus problemas.

Google JSON Plugin

Eu estou supondo que você precisa atualizar o método smd() para updateRowValueForField() realmente chamada em vez de simplesmente retornar imediatamente. Parece que o desenvolvedor anterior nunca realmente ligado aos métodos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top