2015-02-09 75 views
0

我们有一个运行在Tomcat 8中的基于Spring 4.0的Web应用程序(或者我们有一个Undertow的启动脚本)。 Spring MVC正在处理请求。我正在寻找一种方法将一些请求处理代码推迟到Clojure库,只需对遗留Java代码进行最小限度的更改。集成基于Spring的Java应用程序和Clojure库

例如,以URL结尾为.java的请求将由旧版Java处理,并且以.clj结尾的请求将由Clojure处理。现在,我看到三个选项:

  1. 包含在Java项目的依赖关系Clojure的JAR库,并使用clojure.java.api从Java调用Clojure的代码。
  2. 使用某种形式的RPC/RMI或消息队列,例如, Redis和Carmine的消息队列处理功能。这样,Clojure就会生活在一个单独的JVM中。
  3. 使用某种反向代理来执行URL路由。

以上方法实际上可行吗?你还会建议什么?

谢谢!

回答

1

我已经做了类似的事情,但在DropWizard应用程序而不是Spring应用程序。我采用了第一种方法。

我跟着这里的例子 - https://stackoverflow.com/a/2187427/827617 创建库。这样你就不需要使用clojure.java.api,你的Clojure库编译成一个jar文件,你可以在你的Spring应用程序中包含这个jar文件,并直接从Java中调用(你公开的功能是一个类的静态方法)。

+0

谢谢,这可能是最方便的。 – siphiuel 2015-02-13 16:18:43

相关问题