1

cfcでメソッドを呼び出そうとすると、500エラーが発生します。デバッグ情報がまったくないので、何が起こっているのか理解するのに苦労しています。私はログを見ましたが、何が起こっているのかを示すものは何もありません。私はjquery.ajaxを使用してcfcを使用していますPOST

jqueryは次のとおりです。

$("#edit_button").click(function(){
    if(theArray.length > 0){
        theJson = JSON.stringify(theArray);
    }
    $.ajax({type:"POST",
            url: "/CFCs/fund_profile.cfc?method=updateProfile",
            data:theJson,
            dataType:"json",
            success:(function(response){
                var content = ''
                response = JSON.parse(response);    
                alert("the response is" + response);
        });
    });     
});

cfcのメソッドは、今のところかなり基本的です。

<cffuntion name="updateProfile" access="public" returnFormat="json">
    <cfargument name="theJson">
     <cfif isJson(theJson)>
         <cfset var theArray = deserializeJson(theJson)>
         <cfset var passingJson = serializeJson(theArray)>
     </cfif>
     <cfreturn passingJson>

スタックトレースは次のとおりです。

500

javax.servlet.ServletException
    at coldfusion.xml.rpc.CFCServlet.invoke(CFCServlet.java:154)
    at coldfusion.xml.rpc.CFCServlet.doPost(CFCServlet.java:289)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
    at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89)
    at jrun.servlet.FilterChain.doFilter(FilterChain.java:86)
    at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42)
    at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46)
    at jrun.servlet.FilterChain.doFilter(FilterChain.java:94)
    at jrun.servlet.FilterChain.service(FilterChain.java:101)
    at jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:106)
    at jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)
    at jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:286)
    at jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:543)
    at jrun.servlet.http.WebService.invokeRunnable(WebService.java:172)
    at jrunx.scheduler.ThreadPool$DownstreamMetrics.invokeRunnable(ThreadPool.java:320)
    at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428)
    at jrunx.scheduler.ThreadPool$UpstreamMetrics.invokeRunnable(ThreadPool.java:266)
    at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)

私は困惑していて、実際のデバッグ情報がないので、行き詰まっています。何か案は?

4

1 に答える 1

4

CFCのメソッドのアクセス属性は、Ajax呼び出しに対して(またはFlexアプリのサービスのようなものから)リモートである必要があります。基本的に、アクセスがリモートに設定されていないと、その呼び出しが行われたときに問題のメソッドは「使用可能」になりません。

試す:

<cffunction name="updateProfile" access="remote" returnFormat="json">
  ...
</cffunction>
于 2012-04-10T12:41:32.650 に答える