0

我正在使用 compojure 开发一个 webapp,我曾经用来lein ring server测试我的应用程序。

由于出现问题(例如,http 请求期间出现 500 服务器错误),我总是在环服务器运行时编辑代码,并且当我保存更改时它会保持动态重新编译,因此无需重新启动lein ring server

但是今天有些奇怪。有一个文件,其中包含整个应用程序的核心逻辑。我仔细设计了它,所以没有循环依赖。我开始时一切都很好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”除外。

非常感谢大家

4

1 回答 1

0

虽然没有看到代码和终端真的很难准确,但我建议将您的 lein-ring 依赖项升级到更新版本。众所周知,lein-ring 0.8.5 存在一些问题。

于 2013-09-07T10:49:08.243 回答