有沒有人有過將Clojure代碼與現有JavaEE基礎結構(我的情況是Webspehere應用服務器8)結合的Clojure代碼?將用clojure編寫的EJB部署到獨立的應用服務器
當創建一個jar
部署到應用服務器,我把(:aot [carina.stateless])
到project.clj
(carina.stateless
包括類和兩個接口所需的無狀態EJB),然後運行lein jar
產生了巨大的jar
包括所有相關的Clojure的命名空間。
我試圖避免lein uberjar
,因爲我打算將更多的應用程序部署到相同的應用程序服務器並利用共享jar,但現在大部分代碼都已預編譯。
有沒有辦法避免這個AOT步驟產生一個巨大的jar文件,如果我正在執行的是javax.ejb.Remote
並且延伸javax.ejb.Stateless
?
我找到了一種方法來創建輕量級的EJB與clojure和部署而不需要AOT。我使用了用java編寫的小型EJB,它使用'clojure.lang.RT'來編譯clojure命名空間並調用clojure函數。示例項目可在github上獲得:https://github.com/alesk/clojure-javainterop –