2011-12-08 9 views
4

私のIDEでYUIコンプレッサーがうまく動作し、ムービーターゲットtomcat:runを使用してTomcatをデプロイしてもアプリケーションを実行するときにStringIndexOutOfBoundsExceptionがスローされるWARファイル:WARからTomcatで実行しているときにYUIコンプレッサがStringAddOfBoundsExceptionをスローする

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ファイルを同じjarファイル内のyui圧縮プログラムにバンドルする必要があることが示唆されています。

私はさらに見て、Yahooが2.4.7をリリースしたことを認識しました。これはこれを行います。だから私はこの新しいバージョンを私のプロジェクトに組み込み、他のjarファイルを削除するようにしましたが、私はまだ同じエラーが発生します。

これを修正するにはどうすればよいですか?

+0

上記のクラスパスは、 'org/mozilla/javascript/Parser'クラスがyuicompressorでrhinoとは異なる実装を持ち、特にmavenを使用するwebappビルドでは見られます。 このブログのリンクhttp://www.julienlecomte.net/blog/2008/10/80/に従ってください。 – Sandy

答えて

2

がクラスパスをチェックして、ライノ - の.jar(バックアップ最初の)を削除し、私はライノ -の.jarを取り除いた後、それはagain.i同じ問題を解決してみてください。

4

あなたはmavenビルドだけ除外サイたり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> 

あなたの問題を解決することを願っています。

関連する問題