Clojure China

clojure web app打war包后,扔tomcat服务启动失败!

war
tomcat
clojure
#1

如题,直接上图:


报错少的东东明明是有的:

最后发表下感慨:clojure咋个对小白就这么不友好呢,还能不能愉快的玩耍了:rage:

#2

我是如此的方,命令用错了,我用的:lein ring war ;;不会打依赖
正确命令:lein ring uberwar ;;会打依赖
不过引出了个真正的问题:打成jar,在cmd启动服务,页面样式正常,打成war包tomcat启动,发现页面样式丢失。



如图:war包中样式文件都在。

#3

請仔細看說明文檔。

問問題基本是要先把問題搞清楚?

首先Clojure的東東多數是沒有魔法,所以只要明白庫的基本理論就很容易推導出答案。

你的靜態資源都放在Classpath,那麼一定不是Tomcat自行處理,一定是有相關動作去處理。
在Ring下,不是Middleware就是Handler。那第一方向就是看Middleware。

你應該把你的Middleware的Code展示出來,才有人可以即時幫助你。

另外,題外話。基本上,Clockwise和LightTable是不建議使用。現在Clojure的IDE基本上有

Intelij IDEA + Cursive

好用,易上手。私人用還是免費的。

Emacs + Cider

神級IDE,神級學習曲線。但SpaceEmacs可以把曲線變直線,這篇能讓你簡單入門!
https://practicalli.github.io/spacemacs/

Atom

裝上以下的插件就基本可以
language-clojure, parinfer, proto-repl, rainbow-delimiters, atom-file-icons

VSCode

新進Editor,貌似不錯
裝上以下插件可用
Calva

#4

感谢

#5

幸亏我一开始就用的lein ring uberwar,没有遇到楼主的问题,谢谢哦,我用的是vsscode+ cmder开发,如果debug的话直接Spacemacs+cider,应为以前unix写过c++的makefile ,所以熟悉vim所以果断 Spacemacs,不用emacs

#6

玩了一段时间clojure。ide也试了个遍,还是ide方便,编辑器在管理依赖,构建时是真的不方便。用lein ring uberwar 还是部署时启动失败。我是个小白,开发时project.clj里用的jetty插件方式启动web服务器,打war包时什么都没改,直接lein ring uberwar,结果悲剧了。我知道java从web.xml启动。但clojure webapp 的war包或者jar包里的web.xml啥内容都没有,就这样扔到web服务器上科学么?

#7

需要配置project.xml,会自动生成web.xml和工程class的依赖关系的

#8

多谢:grinning: