2012-11-20 3 views
4

JavaScript 플러그인을 사용하여 파일을 ColdFusion 응용 프로그램에 업로드하고 있습니다. AJAX를 사용하여 서버와 통신하고 JSON을 예상합니다. (꽤 표준적인) 두 개의 cfm 스크립트가 있습니다.HTML을 렌더링하지 않거나 자바 스크립트를 실행하지 않는 coldfusion 스크립트를 어떻게 디버깅 할 수 있습니까?

첫 번째는 플러그인 양식을 포함합니다.

두 번째는

두 번째 스크립트는 플러그인을 처리하기위한 일반 텍스트로 JSON을 반환 등의 파일 목록을 반환, 삭제, 실제 업로드를 처리합니다.

두 번째 스크립트는 HTML을 렌더링하지 않고 첫 번째 스크립트로 보내진 JSON을 js 플러그인으로 직접 제공합니다.

모든 것이 실제로 완벽하게 작동합니다. 파일을 업로드하고 파일 목록을 반환했습니다.

내 문제 : 두 번째 스크립트의 코드가 복잡 해짐에 따라 디버깅이 훨씬 어려워졌습니다.

코드를 렌더링하지 않으므로 cfdump는 쓸모가 없습니다.

어둠 속에서 오류 메시지가 표시되지 않거나 다른 정보가 표시되어 내가 왜 어떤 것이 작동하지 않는지 알려줍니다.

내 제한 사항 : 플러그인이 크고 복잡하기 때문에 필요하지 않은 경우 플러그인을 사용하고 싶지 않습니다. 완벽하게 작동하기 때문에 혼란스럽지 않아야합니다. 내 cf 코드가 문제입니다.

또한이 프로젝트의 관리 영역에 대한 액세스 권한이 없습니다.

하지만이 코드를 기록하거나 디버깅 할 방법이 필요합니다.

내 솔루션 : 필자는 세 번째 파일에 cfdump를 수행해 왔지만, 필자는 절반의 시간을 코딩에 소비하고 절반은 새로운 요구에 맞게 cfdump 솔루션을 변경하는 데 이상적인 솔루션입니다. 또한 다른 상황을 처리하기 위해 cfdump 로거를 발전 시켰습니다. 내 자신의 로거를 작성하여 바퀴를 재발 명하고 싶지는 않습니다. 코드 작성 만하고 싶습니다. ColdFusion이 아니라 JavaScript를 로깅한다는 것을 알지 못하는 AJAX 로거를 설치하려면 관리자 권한이 필요합니다. 그래서 그것은 작동하지 않습니다.

사람들이 ColdFusion과 함께 AJAX에서 작업 한 것을 알고 있습니다. 나는이 문제가있는 유일한 사람이 될 수 없다. 어떤 도움을 주셔서 감사합니다.

+0

어떤 브라우저를 사용하고 있습니까? 디버깅을 위해 아약스 응답으로 덤프하고 브라우저 콘솔로 볼 수 있습니까? – Jason

+0

디버깅을 위해 볼 필요가있는 값이나 오류를 ajax 응답에 덤프하고 Chromes "Developer Tools"> "Network"를 통해 응답 본문을 볼 수 있습니까? 나는 당신의 문제를 완전히 이해하고 있는지 확신 할 수 없지만, 이것이 당신을 위해 그것을 해결합니까? – Jason

+0

Chrome과 Firefox를 사용하고 있습니다. 그것은 해결책 일 수 있습니다. 그러나 내가 돌아 오는 것을 알고 있다고하더라도, 나는 아무것도 얻지 못하면 무엇이 무너지는 지 알려주지 않을 것입니다. Ajax 부분은 쉽습니다. 기본 흐름 제어 문제와 두 번째 스크립트의 바보 같은 버그는 실제 문제를 일으키는 것으로 보이지 않습니다. – leetheguy

답변

3

간단하고 강력한 <cflog> 태그를 잊지 마세요. 코드의 어느 지점에서든지 변수를 덤프 할 수 있으며 구조체를 덤프하려는 경우 serializeJSON(someStruct)을 사용하여 로그에서 전체 구조체 (또는 구조체로 변환 된 객체)를 볼 수 있습니다. Eclipse/CFBuilder의 테일 뷰와 결합하면 비 HTML 생성 코드의 내부 동작을 실시간으로 볼 수 있습니다.

+0

감사합니다. 내 제한 사항 중 하나는 관리자 패널의 로그에 대한 액세스가 부족했기 때문에 매우 안전한 시스템에서이 작업을 원격으로 수행했기 때문입니다. 하지만 귀하의 충고가 가장 잘 들렸으므로이 튜토리얼과 함께 자세히 살펴 보았습니다. http://colorblindprogramming.com/how-to-read-coldfusion-log-files-directly-from-your-app – leetheguy

+0

링크를 제공해 주셔서 감사합니다. 그 끝까지. 로그에 직접 액세스 할 수없는 서버에서 로그를 읽는 데 매우 편리합니다! – Brian

2

Firefox를 사용하는 경우 Firebug를 설치하십시오. 콘솔 탭에서 모든 Ajax 요청을 볼 수 있으며 요청을 펼치면 'HTML'탭으로 이동하십시오. 'HTML'탭에서 서버 페이지 (두 번째 스크립트)에 의해 생성 된 Html 템플릿을 볼 수 있으며 거기에서 coldfusion 오류를 찾을 수 있습니다. Firebug는 Ajax와 협력 할 수있는 훌륭한 도구이며, 이것이 도움이되기를 바랍니다.

1

<cftry>을 사용하고 <cfmail type="html" ...><cfdump ...과 함께 오류를 메일로 보내 스크립트에 대한 정보를 얻으시기 바랍니다.

예 : 불을 지르고와

<CFTRY> 
    <CFSET thingsmightgowronghere &= "foo" /> 
    <CFCATCH type="any"> 
     <CFMAIL from="[email protected]" to="[email protected]" subject="#cfcatch.Message#" type="html"><CFDUMP var="#cfcatch#" /></CFMAIL> 
    </CFCATCH> 
</CFTRY>  

디버깅도 가능하지만, 당신이 뭔가를하는 cfdump하고 경우에 불을 지르고에서 보는 것 그하는 cfdump가 작성하는 CSS/JS를 통해 크롤링이 편안하지.

1

html 태그가 없어서 cfdump를 사용할 수 없다는 생각이 궁금합니다. 나는 단지이 코드가있는 페이지를 만들었 :

<cfsetting showdebugoutput="no"> 
<cfset foo = "bar"> 
<cfdump var="#foo#"> 

을 그리고 그것을 찾아 볼 때, 단어 "바"브라우저에서 나타났다.

관련 문제