【问题标题】:YUI Compressor throws StringIndexOutOfBoundsException when running in Tomcat from a WAR从 WAR 在 Tomcat 中运行时,YUI Compressor 抛出 StringIndexOutOfBoundsException
【发布时间】:2012-01-15 18:39:52
【问题描述】:

我遇到了一个问题,即 YUI 压缩器在我的 IDE 中运行良好,即使我使用 maven 目标 tomcat:run 部署 tomcat,但是当我将应用程序作为 WAR 文件运行时抛出 StringIndexOutOfBoundsException:

java.lang.StringIndexOutOfBoundsException: String index out of range: 412
    at java.lang.String.substring(String.java:1934)
    at com.yahoo.platform.yui.compressor.JavaScriptCompressor.printSourceString(JavaScriptCompressor.java:267)
    at com.yahoo.platform.yui.compressor.JavaScriptCompressor.parse(JavaScriptCompressor.java:330)
    at com.yahoo.platform.yui.compressor.JavaScriptCompressor.<init>(JavaScriptCompressor.java:533)

现在,我知道很多人一直在报告这个问题,例如: Yui compressor StringIndexOutOfBoundsException on jboss

您可以在网络上的其他地方找到其他人提及。

建议您需要将 rhino 文件与 yui 压缩器捆绑在同一个 jar 中以避免类路径错误。

我进一步观察,发现雅虎发布了 2.4.7 版,它就是这样做的。所以我将这个新版本包含在我的项目中,并确保删除了其他 jar,我仍然得到同样的错误。

我该如何解决这个问题?

【问题讨论】:

  • 上述类路径的出现是因为 'org/mozilla/javascript/Parser' 类在 yuicompressor 中的实现与 rhino 不同,尤其是在使用 maven 构建 webapp 时。可以通过以下博客链接解决问题julienlecomte.net/blog/2008/10/80

标签: java javascript tomcat maven yui


【解决方案1】:

如果您使用 maven 构建排除 rhino 或从您的 classpath 中删除 js-1.7R2.jar / rhino-1.7R4.jar/ rhino-1.7R3.jar 文件,

<dependency>
    <groupId>com.yahoo.platform.yui</groupId>
    <artifactId>yuicompressor</artifactId>
    <version>2.4.7</version>
    <exclusions>
        <exclusion>
            <artifactId>js</artifactId>
            <groupId>rhino</groupId>
        </exclusion>
    </exclusions>
</dependency>

希望它能解决你的问题。

【讨论】:

    【解决方案2】:

    检查您的类路径并删除 rhino-.jar(先备份),再试一次。我在删除 rhino-.jar 后解决了同样的问题。

    【讨论】:

      【解决方案3】:

      这个问题应该可以解决你的问题,特别是如果你使用 maven:

      Yui compressor StringIndexOutOfBoundsException on jboss

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-06-17
        • 1970-01-01
        • 2019-08-30
        • 2019-06-20
        • 1970-01-01
        • 2011-12-06
        • 1970-01-01
        相关资源
        最近更新 更多