Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
集成基于Spring的Java应用程序和Clojure库_Spring_Clojure_Redis_Rmi_Carmine - Fatal编程技术网

集成基于Spring的Java应用程序和Clojure库

集成基于Spring的Java应用程序和Clojure库,spring,clojure,redis,rmi,carmine,Spring,Clojure,Redis,Rmi,Carmine,我们有一个在Tomcat8中运行的基于Spring4.0的web应用程序(或者我们有一个用于Undertow的启动脚本)。SpringMVC正在处理请求。我正在寻找一种方法,将一些请求处理代码延迟到Clojure库,对遗留Java代码进行最小的更改 例如,URL以.java结尾的请求将由遗留java处理,而以.clj结尾的请求将由Clojure处理。目前,我看到三种选择: 在Java项目的依赖项中包括Clojure库jar,并使用Clojure.Java.api从Java调用Clojure代码

我们有一个在Tomcat8中运行的基于Spring4.0的web应用程序(或者我们有一个用于Undertow的启动脚本)。SpringMVC正在处理请求。我正在寻找一种方法,将一些请求处理代码延迟到Clojure库,对遗留Java代码进行最小的更改

例如,URL以
.java
结尾的请求将由遗留java处理,而以
.clj
结尾的请求将由Clojure处理。目前,我看到三种选择:

  • 在Java项目的依赖项中包括Clojure库jar,并使用
    Clojure.Java.api
    从Java调用Clojure代码
  • 使用某种RPC/RMI或消息队列,例如Redis和Carmine的消息队列处理功能。这样,Clojure将生活在一个单独的JVM中
  • 使用某种反向代理来执行URL路由
  • 上述方法是否切实可行?你还有什么建议


    谢谢

    我也做过类似的事情,但是是在DropWizard应用程序上,而不是在Spring应用程序上。我采用了方法1

    我在这里举了一个例子-
    创建库。这样,您就不需要使用
    clojure.java.api
    ,您的clojure库将编译成一个jar,可以包含在Spring应用程序中并直接从java调用(您公开的函数是类上的静态方法)。

    谢谢,这可能是最方便的。