문제

이전 개발자가 작성한 코드를 작동 시키려고합니다. 네, 이제 그는 회사를 떠났습니다. :-(

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 플러그인 페이지 계속해서.

나는 단지 또 다른 눈이 필요하다고 생각합니다.

참고 : 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 (키, 값, 필드 이름)를 호출하고 다른 것이 아닌가?

또한, 당신의 메소드는 공허를 반환합니다 (예 : 아무것도 반환하지 않습니다). 무엇을 얻을 것으로 기대 했습니까?

다른 팁

새로운 버전은 내 문제를 해결합니다.

Google JSON 플러그인

나는 당신이 그것을 업데이트해야한다고 생각합니다 smd() 실제로 호출하는 방법 updateRowValueForField() 단순히 즉시 돌아 오기보다는. 이전 개발자가 실제로이 방법을 연결하지 않은 것 같습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top