我在打包的tomcate7中使用ubuntu。
我使用.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 Page讨论了该过程,但仅提供了部分解决方案(从自动化角度出发)。

当然,预编译不流行的一个原因是,预编译的JSP不能跨容器移植,也不一定是同一容器的版本。因此,这是一个值得注意的问题。

09-05 02:09