cfc中有500个错误

时间:2012-04-10 12:37:57

标签: jquery coldfusion cfc

当我尝试在cfc中调用方法时,我收到500错误。由于我没有得到任何调试信息,我正在努力弄清楚发生了什么。我查看了日志,没有任何内容可以显示正在发生的事情。我正在使用jquery .ajax使用POST

来调用cfc

这是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)

我很难过,如果没有任何真正的调试信息,我就会被困住。有什么想法吗?

1 个答案:

答案 0 :(得分:4)

您的CFC方法的访问属性需要远程进行Ajax调用(或者来自Flex应用程序的服务)。基本上,如果没有将访问权限设置为远程,则所讨论的方法不可用&#34;可用&#34;什么时候打电话。

尝试:

<cffunction name="updateProfile" access="remote" returnFormat="json">
  ...
</cffunction>