【问题标题】:Heroku Deployment Error w/ Compojure: "Could not locate leiningen/core/classpath__init.class"带有 Compojure 的 Heroku 部署错误:“无法找到 leiningen/core/classpath__init.class”
【发布时间】:2013-06-21 17:32:27
【问题描述】:

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

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) ...

【问题讨论】:

    标签: heroku clojure web-deployment compojure


    【解决方案1】:

    好的,这个问题出现在几个地方。 This post(和this one)提供了丰富的信息。

    我基本上偶然发现了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"]

    现在一切都已完成。希望这可以帮助某人。

    【讨论】:

      猜你喜欢
      • 2019-03-20
      • 2023-04-10
      • 2018-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-19
      • 1970-01-01
      相关资源
      最近更新 更多