我有一个 clojure/ring 项目,它有两个不同的应用程序/处理程序在不同的端口上运行(一个用于 api,一个用于 Web 前端)。它们共享大量代码,但每个都有自己的命名空间,在其中完成特定于该接口的所有工作。现在我想将它部署为在 tomcat 或类似的东西中运行的 servlet(实际上它需要在任何 servlet 容器中工作)。不过我遇到了麻烦,因为 lein-ring 似乎假设 servlet 中只有一个处理程序。例如,在我的 project.clj 我有这一行:
:ring {:handler caribou.api/app
:servlet-name "caribou"
:init caribou.api/init}
这对 api 来说很棒,但是现在前端呢?我是否需要创建另一个包含这个的项目,以便它可以拥有自己的处理程序和 servlet?servlet 是否总是在一个端口上运行?
基本上有两件事我不确定:我不是来自 java 背景,所以我不确定 servlet 方法发生了什么以及它有什么限制,我不清楚 clojure 究竟是如何转化为servlet 范式足以以一般方式构建该项目。
任何帮助表示赞赏,谢谢!