当用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中有犀牛,似乎您会再次遇到此错误。