我为我的 grails 应用程序构建了 WAR,并尝试将它部署到我的本地 tomcat 实例 (Tomcat 6.0.26)。但是应用程序无法启动,因为这个异常(从日志中复制):
2011-05-09 17:49:31 org.apache.catalina.core.StandardContext listenerStart
SEVERE: Exception sending context initialized event to listener instance of class org.codehaus.groovy.grails.web.context.GrailsContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'pluginManager' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.ClassNotFoundException: CodeCoverageGrailsPlugin
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.ClassNotFoundException: CodeCoverageGrailsPlugin
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:316)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
... 3 more
这很奇怪,因为代码覆盖不应该出现在生产环境中。我检查了 tomcat 解压我的网络应用程序的 \WEB-ING\lib
目录,但我没有找到任何与 cobertura 相关的 jar。知道如何让我的应用程序运行吗?
编辑:
使用 grails prod run-war
在嵌入式 Tomcat 实例中运行应用程序会产生同样的问题。
编辑 2:
我谷歌搜索得不够好: code-coverage plugin issue 36
最佳答案
问题仅出现在代码覆盖插件的 1.2.2 版中。升级到 1.2.4 版本即可解决问题。
关于tomcat - 使用代码覆盖插件的 Grails 生产 WAR 部署错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5939451/