检查Java Web应用程序的JSP的编译大小

时间:2017-03-24 10:42:24

标签: jsp tomcat jstl scriptlet

我遇到过我的JSP service()方法超出允许的64k足迹的情况。我想在这个阶段显而易见的答案是"将其缩小为较小的scriptlet并控制自定义标签的使用"。但我想知道我是否可以设置一些工作,例如通过ANT / GRADLE预先编译我的JSP。这有助于确定哪些JSP页面会因巨大的scriptlet /标签而中断吗?

UPDATE 我的ant构建文件中定义了jspc编译任务。我假设failOnError=false它将进行完整的编译。但我无法找到showSuccess属性来设置并打印出所有成功消息。

原因是我的项目非常庞大,并且有大约1k个JSP页面。所以我需要找到一些更便宜的解决方案(或劳动选项,如果你愿意)来识别这些受影响的JSP。任何建议都受到高度赞赏。

我正在使用带有Ant和JDK 8u125的Tomcat 8.0.53。

KR,

1 个答案:

答案 0 :(得分:0)

我暂时通过

解决了这个问题

1)编写一个命令行java应用程序,它将遍历已编译的JSP类文件列表。 2)使用apache BCEL,我将检查文件的每个方法,并与64k大小进行比较,看看哪个方法已经过去了。 3)打印出来。

Tomcat类加载非常独特,需要tools.jar,ant.jar和ant-launcher.jar才能允许用于类加载的antloader(因此,使用ant编译器)。所以我不得不想出一个不同的方法来确定问题。

此外,似乎无论我如何配置我的ant构建,输出都不会抱怨64k大小,直到我启动webapp。我有一个单独的线程运行here