3

我重构了我的轻量级 webapp,现在使用Compojure。在本地一切正常。但是,当我部署到Heroku时会出现问题。我正在尝试使用 运行它lein ring server-headless $PORT,但出现以下错误。web: lein ring server-headless $PORT由于这个问题,我的 Procfile 是。但仍然没有运气。有任何想法吗?

    2013-06-25T02:38:15.671118+00:00 heroku[web.1]:使用命令“lein ring server-headless 17731”启动进程
    2013-06-25T02:38:16.350715+00:00 app[web.1]: 拿起 JAVA_TOOL_OPTIONS: -Djava.net.preferIPv4Stack=true -Djava.rmi.server.useCodebaseOnly=true
    2013-06-25T02:38:19.684531+00:00 应用 [web.1]: 在 clojure.lang.Compiler.eval(Compiler.java:5440)
    2013-06-25T02:38:19.683953+00:00 应用程序 [web.1]:线程“主”java.io.FileNotFoundException 中的异常:找不到 leiningen/core/classpath__init.class 或 leiningen/core/classpath.clj在类路径上:(server.clj:1)
    2013-06-25T02:38:19.685445+00:00 应用程序 [web.1]:在 clojure.lang.RT.load(RT.java:381)
    2013-06-25T02:38:19.684682+00:00 应用程序 [web.1]: 在 clojure.lang.Compiler.eval(Compiler.java:5415)
    2013-06-25T02:38:19.684956+00:00 应用程序 [web.1]:在 clojure.lang.RT.loadResourceScript(RT.java:340)
    2013-06-25T02:38:19.685581+00:00 应用程序 [web.1]:在 clojure.core$load$fn__4519.invoke(core.clj:4915)
    2013-06-25T02:38:19.684821+00:00 应用程序 [web.1]: 在 clojure.lang.Compiler.load(Compiler.java:5857)
    2013-06-25T02:38:19.685221+00:00 应用程序 [web.1]:在 clojure.lang.RT.load(RT.java:409)
    2013-06-25T02:38:19.685714+00:00 应用 [web.1]: 在 clojure.core$load.doInvoke(core.clj:4914)
    2013-06-25T02:38:19.685976+00:00 应用程序 [web.1]: 在 clojure.core$load_one.invoke(core.clj:4729)
    2013-06-25T02:38:19.686270+00:00 应用程序 [web.1]: 在 clojure.lang.RestFn.applyTo(RestFn.java:142)
    2013-06-25T02:38:19.685089+00:00 应用程序 [web.1]:在 clojure.lang.RT.loadResourceScript(RT.java:331)
    2013-06-25T02:38:19.686403+00:00 应用程序 [web.1]: 在 clojure.core$apply.invoke(core.clj:542)
    2013-06-25T02:38:19.685846+00:00 应用程序 [web.1]: 在 clojure.lang.RestFn.invoke(RestFn.java:408)
    2013-06-25T02:38:19.686106+00:00 应用程序 [web.1]: 在 clojure.core$load_lib.doInvoke(core.clj:4766)
    2013-06-25T02:38:19.686587+00:00 应用程序 [web.1]: 在 clojure.core$load_libs.doInvoke(core.clj:4800)
    2013-06-25T02:38:19.686727+00:00 应用程序 [web.1]:在 clojure.lang.RestFn.applyTo(RestFn.java:137)
    2013-06-25T02:38:19.686860+00:00 应用 [web.1]: 在 clojure.core$apply.invoke(core.clj:544)
    2013-06-25T02:38:19.687027+00:00 应用 [web.1]: 在 clojure.core$use.doInvoke(core.clj:4892)
    2013-06-25T02:38:19.687158+00:00 应用程序 [web.1]: 在 clojure.lang.RestFn.invoke(RestFn.java:551)
    2013-06-25T02:38:19.687292+00:00 应用程序 [web.1]:在 leiningen.ring$eval68$loading__4414__auto____69.invoke(ring.clj:1)
    2013-06-25T02:38:19.687425+00:00 应用程序 [web.1]: 在 leiningen.ring$eval68.invoke(ring.clj:1)
    2013-06-25T02:38:19.687557+00:00 应用程序 [web.1]: 在 clojure.lang.Compiler.eval(Compiler.java:5424)
    ...

4

1 回答 1

4

好的,这个问题在几个地方出现了。这篇文章(和这篇文章)内容丰富。

我基本上偶然发现了Heroku Buildpack: Clojure。这给出了一些有趣的配置方向。具体来说,我不得不

  • 设置最低 lein 版本。:min-lein-version "2.0.0"
  • 需要 JDK 7 和echo "java.runtime.version=1.7" > system.properties
  • 添加了 ring servlet 库:[ring/ring-servlet "1.2.0-RC1"]

而现在一切都是共病的。希望这可以帮助某人。

于 2013-06-25T19:54:48.223 回答