6

アプリを war にパッケージ化しました (by grails war)。ご覧のとおり、必要なすべてのリソースが構築されています。たとえば、 dircoffeescriptに変換されたコードがあります。jsなどについても同じですscss。直接提供できるすべての静的リソースがあることを意味します(TomcatではなくNginxからサーバー化したい)

しかし、これwarを Tomcat にデプロイした後、次のようなエラーが発生します。

ERROR plugins.DefaultGrailsPluginManager  - Error configuring dynamic methods for plugin [resources:1.1.6]: java.lang.NoSuchMethodError: org.mozilla.javascript.Parser.parse(Ljava/io/Reader;Ljava/lang/String;I)Lorg/mozilla/javascript/ScriptOrFnNode;
org.codehaus.groovy.runtime.InvokerInvocationException: java.lang.NoSuchMethodError: org.mozilla.javascript.Parser.parse(Ljava/io/Reader;Ljava/lang/String;I)Lorg/mozilla/javascript/ScriptOrFnNode;
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:680)
Caused by: java.lang.NoSuchMethodError: org.mozilla.javascript.Parser.parse(Ljava/io/Reader;Ljava/lang/String;I)Lorg/mozilla/javascript/ScriptOrFnNode;
    at com.yahoo.platform.yui.compressor.JavaScriptCompressor.parse(JavaScriptCompressor.java:312)

これはyui-minify-resourcesプラグインからのものです。coffeescript-resourcesプラグインでも同様のことが起こっています。このプラグインに何か問題があるためかもしれませんが、静的ファイルに準備/処理/コンパイルされたすべてのリソースが既にあるため、クレイジーです。本番モードではこのプラグインは必要ありません。

プロダクション モードでこのリソース プラグインをすべて無効にするにはどうすればよいですか? 出来ますか?

PS同じことgrails run-war

4

1 に答える 1

2

これはcoffeescript-resourcesyui-minify-resources両方とも Rhino JavaScript エンジンに依存していることが原因である可能性がありますが、YUI チームがRhino のバージョンにいくつかの変更を加えたため、バニラの Rhino と互換性がなくなりました。次の 2 つのオプションがあります。

  1. クラスローダーでハッキングしてみる
  2. YUI コンプレッサーを使用しない
于 2012-08-24T06:57:43.923 に答える