当用2.4.6最小化yui时,出现此问题:

java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:232

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)

当通过我的IDE启动时,它可以工作,但是当部署到jboss时,它就不能工作。这个地方:http://yuilibrary.com/forum/viewtopic.php?p=20086对相同的问题进行了一些讨论。

显然问题出在org/mozilla/javascript/Parser周围,这是从我的maven配置中提取的两个jar中的:
<dependency>
<groupId>com.yahoo.platform.yui</groupId>
<artifactId>yuicompressor</artifactId>
<version>2.4.6</version>
</dependency>

有什么办法可以使用Maven排除项等方式解决,也可以通过升级我的YUI版本来解决。似乎很愚蠢,它只是行不通,我不想写一个自定义的类加载器。

请帮忙!

最佳答案

解决方法:对于JBoss AS 7.1.1.Final和YUICompressor 2.4.7

从依赖项中排除犀牛:

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

为什么?参见https://github.com/greenlaw110/greenscript/pull/29#issuecomment-4017147

注意:如果您通过其他方式在classpath中有犀牛,似乎您会再次遇到此错误。

10-07 19:30
查看更多