上周发生了一些奇怪的事情,让我与同龄人面对面。我没有时间找出根本原因,但现在我正在深入研究。上周四的星期四晚上,经过一个月左右的正常运行时间后,几乎所有我用Compojure编写的Web服务实例都在同一时间,产品发布前5天取决于它。想像。
Clojure,已经被怀疑为“边缘”,被立即指责,正如你可能想象的那样,这引起了很多变化。烧伤。我用Java重写了我的服务,并准备好了,但QA说不行。什么样的恶梦。现在我有几分钟时间,我真的很想知道社区是否可以提供帮助。
失败。这是一个堆栈跟踪,伴随着惊人的500错误:
2013-09-26 18:00:55.934:WARN:oejs.ServletHandler:qtp1525259451-38221: Error for /path/to/api
java.lang.NoClassDefFoundError: clout/core$re_groups_STAR_$iter_242246$fn247$fn_248
at clout.core$re_groups_STAR_$iter_242246$fn_247.invoke(core.clj:23)
at clojure.lang.LazySeq.sval(LazySeq.java:42)
at clojure.lang.LazySeq.seq(LazySeq.java:60)
at clojure.lang.RT.seq(RT.java:484)
at clojure.core$seq.invoke(core.clj:133)
at clojure.core$map$fn__4207.invoke(core.clj:2479)
at clojure.lang.LazySeq.sval(LazySeq.java:42)
at clojure.lang.LazySeq.seq(LazySeq.java:60)
at clojure.lang.RT.seq(RT.java:484)
at clojure.core$seq.invoke(core.clj:133)
at clojure.core$map$fn__4211.invoke(core.clj:2490)
at clojure.lang.LazySeq.sval(LazySeq.java:42)
at clojure.lang.LazySeq.seq(LazySeq.java:60)
at clojure.lang.RT.seq(RT.java:484)
at clojure.core$seq.invoke(core.clj:133)
at clojure.core.protocols$seq_reduce.invoke(protocols.clj:30)
at clojure.core.protocols$fn__6026.invoke(protocols.clj:54)
at clojure.core.protocols$fn_5979$G5974_5992.invoke(protocols.clj:13)
at clojure.core$reduce.invoke(core.clj:6177)
at clout.core$assoc_keys_with_groups.invoke(core.clj:54)
at clout.core.CompiledRoute.route_matches(core.clj:84)
at compojure.core$if_route$fn__515.invoke(core.clj:38)
at compojure.core$if_method$fn__508.invoke(core.clj:24)
Prod eng说:“骑自行车后应用程序就行了。”
什么可能导致这样的事情?其他人说,“它看起来像丢失了它的类文件”但据我所知,我不知道这意味着什么或如何发生......在clout核心中,引发异常的行看起来像
(defn re-groups*
"More consistant re-groups that always returns a vector of groups, even if there is only one group."
[^Matcher matcher]
(for [i (range (.groupCount matcher))]
(.group matcher (int (inc i)))))
那是怎么回事?一个bug?托词?有没有人有一个Compojure应用程序超过几个月没有骑自行车?