2012-04-10 3 views
1

cfc에서 메소드를 호출 할 때 500 오류가 발생합니다. 디버깅 정보를 얻지 못해서 무슨 일이 일어나는지 알아 내려고 애 쓰고 있습니다. 로그를 살펴 봤는데 무슨 일이 벌어지고 있는지 알려주는 것이 아무것도 없습니다.cfc에서 500 오류

$("#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> 

내가 여기 POST

를 사용하여 CFC를 호출하는 JQuery와 .ajax을 사용하고하면 JQuery와있다 다음은 스택 추적입니다.

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

CFC의 메소드의 액세스 속성은 Ajax 호출 (또는 Flex 어플리케이션의 서비스와 같은 것)을 위해 원격이어야합니다. 본질적으로, 원격으로 설정된 액세스가 없으면 해당 메서드가 해당 호출이 수행 될 때 "사용 가능"하지 않습니다.

봅니다 :

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

내가 생각하기 전에이 문제가되었다 것을 시도하고, 나는 여전히 같은 오류를 받고 있어요. –

+1

확인. 그것은 비록 원격, :)해야합니다. jQuery ($ .ajax 대)에서 $ .getJSON (http://api.jquery.com/jQuery.getJSON/) 호출을 사용해 보셨나요? $ .getJSON ("/ url/or/path/to/your /cfc.cfc ", { 방법 : 'update_profile', theJSON : yourdata, returnformat : 'json' }, function (data) {alert (data);}); –

+0

나는 그렇지 않다. 나는 그것을 시도 할 것이다. 나는 jquery에 대해 매우 익숙하다. 그래서 이것은 모든 시행 착오이다. (내가 인정하기를 바라는 것보다 많은 오류가있다. :)). –