没有tomcat插件的Grails战争

时间:2012-12-04 03:16:50

标签: tomcat grails

当我使用tomcat 2.2.0构建grails 2.1.0应用程序时,当我在Tomcat 7上部署时,我在启动时遇到以下错误:

  

INFO:validateJarFile(/app/app/webapps/ROOT/WEB-INF/lib/tomcat-embed-core-7.0.27.jar) - jar未加载。请参阅Servlet规范2.3,第9.7.2节。违规类:javax / servlet / Servlet.class   2012年12月1日下午4:01:01 org.apache.catalina.core.NamingContextListener lifecycleEvent   严重:命名上下文的创建失败:javax.naming.NamingException:上下文是只读的

  

java.lang.NoClassDefFoundError:org / apache / tomcat / PeriodicEventListener           at java.lang.ClassLoader.defineClass1(Native Method)           at java.lang.ClassLoader.defineClass(ClassLoader.java:634)           at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)           在org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2818)           在org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1159)           在org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1647)           在org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)           在org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1128)           在org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1026)

如果我在爆炸的战争中删除tomcat- * jar文件,应用程序启动没有问题,或者如果我删除tomcat插件,应用程序启动没有问题。 理想情况下,我想在没有插件的情况下构建应用程序但是出于开发目的。这可能吗?

1 个答案:

答案 0 :(得分:3)

对于初学者,请使用与您正在使用的Grails版本对应的Tomcat插件版本。但真正的问题是插件应仅在run-apprun-war脚本的开发中可用,但不应该最终出现在war脚本创建的WAR文件中。如果您在application.properties中有插件,请将其删除(以及其中的任何其他插件)。这会将插件置于compile范围内,并将导致它位于WAR文件中。

使用该插件的正确方法是在build的{​​{1}}部分添加plugins范围相关性:

BuildConfig.groovy