【问题标题】:Checking the compiled size of JSPs for a Java web application检查 Java Web 应用程序的 JSP 的编译大小
【发布时间】:2017-03-24 10:42:23
【问题描述】:

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

更新 我确实在我的 ant 构建文件中定义了 jspc 编译任务。我假设使用failOnError=false 它将进行完整编译。但是我找不到showSuccess 属性来设置并打印出所有成功消息。

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

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

韩国,

【问题讨论】:

  • 我也遇到了类似的问题,你找到解决办法了吗?
  • 不是——我已经将我的 JSP 预编译为 ant/ivy 构建的一部分。但它没有报告任何问题。我希望在不存在编译错误时,会弹出 64k 占用空间错误。

标签: jsp tomcat jstl scriptlet


【解决方案1】:

我暂时解决了这个问题

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

Tomcat 类加载非常独特,需要 tools.jar、ant.jar 和 ant-launcher.jar 以允许 antloader 进行类加载(因此,使用 ant 编译器)。所以我不得不想出一种不同的方法来识别问题。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-01
    • 2016-03-28
    • 2012-07-27
    • 1970-01-01
    • 2012-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多