我正在使用ubuntu和打包的tomcate7。我使用.war文件上传网站。网络运行良好。
这不是我的网站,但它在那里:
:/var/lib/tomcat7/webapps/ROOT$ ls
index.html META-INF
我在找到我的网站文件(那些在.war中的)
/var/cache/tomcat7/Catalina/localhost/_/org/apache/jsp/
/var/cache/tomcat7/Catalina/localhost/_/WEB-INF/classes/
我没有在系统范围内搜索到任何.css或.js文件如find / -name '*.css' -ls
他们在哪里?!
有没有一种简单的方法可以只给tomcat.class文件或删除.jsp.java文件(例如,如果我不想给出真正的源,而只想提供.class)JSP预编译。在构建期间,一些工具(jspc)是困难的。有简单的步行路线吗?
WAR文件可能在服务器上的"某个地方",但tomcat可能已配置为在部署时不"爆炸"WAR文件,而只是直接从WAR中提供资源。这可能就是为什么你的网站"工作",但你找不到实际的.css文件,.css文件不在文件系统上,但仍然包含在WAR中。
至于#2,预编译JSP,出于某种原因,这仍然是一个"跳过燃烧的环"过程,只是半自动化的。
部署前预编译JSP需要将JSP文件转换为Java源文件,编译该文件,然后将生成的类映射为最终web应用程序中的servlet,最后从web应用程序删除JSP文件。
有一个Tomcat页面讨论了这个过程,但只提供了解决方案的一部分(从自动化的角度来看)。
当然,预编译不受欢迎的一个原因是,预编译的JSP不可跨容器移植,也不一定是同一容器的版本。所以,这是一个值得注意的问题。