6

我已经将我的应用程序打包成一个战争(by grails war),正如我所见,它已经构建了所有必需的资源。例如我有coffeescript代码,已经翻译成js目录。等scss。我的意思是我有所有静态资源,可以直接提供(我想从 Nginx,而不是 Tomcat 提供服务)

但是在将它部署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-resources两者yui-minify-resources都依赖于 Rhino javascript 引擎,但是 YUI 团队对他们的 Rhino 版本进行了一些修改,这导致它与原版 Rhino 不兼容。你有两个选择:

  1. 尝试使用类加载器进行破解
  2. 不要使用 YUI 压缩器
于 2012-08-24T06:57:43.923 回答