【发布时间】:2013-09-07 18:49:08
【问题描述】:
我正在使用 compojure 开发一个 webapp,我曾经使用lein ring server 来测试我的应用程序。
由于出现问题(例如,在 http 请求期间出现 500 服务器错误),我总是在环服务器运行时编辑代码,并且当我保存更改时它会保持动态重新编译,因此无需重新启动 @987654322 @
但是今天有些奇怪。有一个文件,其中包含整个应用程序的核心逻辑。我仔细设计了它,所以没有循环依赖。当我开始lein ring server 时,一切都很好。但很快事情就变得奇怪了:对该文件的任何更新(甚至添加一个空格)都会导致服务器在下一个 http 请求时堆栈溢出,如果我重新启动服务器,一切都会再次正常,我的新代码运行良好。所以直到现在,每次我需要更新那个文件时,我都需要关闭服务器,更新文件,然后再次运行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)
数百次,但“stackoverflow”除外。
非常感谢大家
【问题讨论】:
-
不看你的代码sn-p就无法知道。
-
所有代码运行良好,堆栈跟踪显示我的应用程序内没有代码......
-
Clojure、Ring 和 Compojure 有哪些版本?
-
我正在使用 clojure 1.5.1 和 compojure 1.1.5、leiningen 1.2.2、lein-ring 0.8.5 和 ring-mock 0.1.5
标签: clojure