저는 compojure를 사용하는 webapp에서 작업 중이며, lein ring server
을 사용하여 응용 프로그램을 테스트했습니다.코드를 동적으로 편집 할 때 스택 오버 플로우가 발생합니다.
http 요청 중에 500 Server Error와 같은 문제가 발생했기 때문에 링 서버가 실행되는 동안 코드를 편집하고 변경 사항을 저장할 때 동적으로 다시 컴파일하여 다시 시작할 필요가 없습니다. lein ring server
하지만 오늘은 이상하게되었습니다. 전체 애플리케이션의 핵심 로직을 담고있는 파일이있었습니다. 순환 종속성이 없도록 신중하게 설계했습니다. 내가 시작했을 때 모든 것이 괜찮 았는데 lein ring server
. 하지만 곧 이상한 일이 일어납니다. 그 파일에서 어떤 업데이트 (심지어 단일 공간 추가)가 발생하면 다음 http-request에서 서버 스택 오버 플로우가 발생하고 서버를 다시 시작하면 모든 일이 다시 정상적으로 처리되고 새로운 코드가 잘 실행됩니다. 따라서 지금까지 파일을 업데이트해야 할 때마다 서버를 종료하고 파일을 업데이트 한 다음 lein ring server
을 다시 실행해야합니다. 그건 시간 낭비이고 그 이유가 무엇인지 알고 싶습니다. 오류에
메시지가 표시됩니다 : "유래"의 예외와 수백 배에 대한
at clojure.core$reduce.invoke(core.clj:6177)
at ns_tracker.dependency$transitive.invoke(dependency.clj:22)
at ns_tracker.dependency$transitive$fn__924.invoke(dependency.clj:21)
at clojure.core.protocols$fn__6022.invoke(protocols.clj:79)
at clojure.core.protocols$fn__5979$G__5974__5992.invoke(protocols.clj:13)
.
코드 스 니펫을 보지 않고서도 알 수 없습니다. – Chiron
모든 코드가 잘 작동하고 스택 추적에 내 응용 프로그램 내부에 코드가 표시되지 않습니다 .... –
Clojure, Ring 및 Compojure의 버전은 무엇입니까? – Chiron