0

我正在使用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

  1. 他们在哪?!

  2. 有没有一种简单的方法可以只给tomcat .class 文件或删除.jsp .java 文件(例如,如果我不想提供真正的源代码而只提供.class)JSP 预编译。在构建期间,某些工具 (jspc) 很困难。有什么简单的走过去吗?

4

1 回答 1

0

WAR 文件可能在服务器上的“某处”,但 tomcat 可能已配置为在部署时不“分解” WAR 文件,而只是直接从 WAR 中提供资源。这可能是您的网站“工作”但您找不到实际的 .css 文件的原因,文件系统上不存在 .css 文件但仍包含在 WAR 中。

至于#2,预编译 JSP,出于某种原因,这仍然是一个“跳过火圈”的过程,只是半自动化的。

在部署之前预编译 JSP 需要将 JSP 文件转换为 Java 源文件,编译该文件,然后将该生成的类映射为最终 Web 应用程序中的 servlet,最后从 Web 应用程序中删除该 JSP 文件。

有一个Tomcat Page讨论了该过程,但仅提供了部分解决方案(从自动化的角度来看)。

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

于 2013-02-19T18:58:06.107 回答