简体   繁体   English

部署Grails应用程序时出错:java.lang.NoClassDefFoundError:org / codehaus / groovy / runtime / BytecodeInterface8

[英]Error when deploying Grails app: java.lang.NoClassDefFoundError: org/codehaus/groovy/runtime/BytecodeInterface8

So I have a Grails app running in STS on my local machine, and I'm trying to deploy it to a CentOS/Tomcat server VM. 因此,我有一个Grails应用程序在本地计算机上的STS中运行,并且试图将其部署到CentOS / Tomcat服务器VM。 I think I installed Groovy and Grails correctly, or at least I can run them from the console now, by adding them to the path in /etc/bashrc. 我认为我已经正确安装了Groovy和Grails,或者至少现在可以通过将它们添加到/ etc / bashrc中的路径来从控制台运行它们。 However, when I take my compiled .war file, and put it in the Tomcat server's webapp directory and restart the server, it throws this error: 但是,当我将编译后的.war文件放入Tomcat服务器的webapp目录中并重新启动服务器时,它将引发以下错误:

Oct 17, 2011 4:33:21 PM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive CSTools-0.1.war
2011-10-17 16:33:29,558 [main] ERROR context.ContextLoader  - Context initialization failed
org.springframework.beans.factory.access.BootstrapException: Error executing bootstraps; nested exception is org.codehaus.groovy.runtime.InvokerInvocationException: java.lang.NoClassDefFoundError: org/codehaus/groovy/runtime/BytecodeInterface8
    at org.codehaus.groovy.grails.web.context.GrailsContextLoader.createWebApplicationContext(GrailsContextLoader.java:87)
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197)
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4206)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4705)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:943)
    at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:778)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:504)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1317)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1065)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
    at org.apache.catalina.core.StandardService.start(StandardService.java:525)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: org.codehaus.groovy.runtime.InvokerInvocationException: java.lang.NoClassDefFoundError: org/codehaus/groovy/runtime/BytecodeInterface8
    at grails.spring.BeanBuilder.invokeBeanDefiningClosure(BeanBuilder.java:723)
    at grails.spring.BeanBuilder.beans(BeanBuilder.java:573)
    at grails.spring.BeanBuilder.invokeMethod(BeanBuilder.java:519)
Caused by: java.lang.NoClassDefFoundError: org/codehaus/groovy/runtime/BytecodeInterface8
    at IbatisGrailsPlugin$_closure1_closure3.doCall(IbatisGrailsPlugin.groovy:48)
    at grails.spring.BeanBuilder.invokeBeanDefiningMethod(BeanBuilder.java:679)
    at grails.spring.BeanBuilder.invokeMethod(BeanBuilder.java:550)
    at IbatisGrailsPlugin$_closure1.doCall(IbatisGrailsPlugin.groovy:46)
    at IbatisGrailsPlugin$_closure1.doCall(IbatisGrailsPlugin.groovy)
    ... 3 more
Caused by: java.lang.ClassNotFoundException: org.codehaus.groovy.runtime.BytecodeInterface8
    ... 8 more

Any suggestions here? 这里有什么建议? I can't seem to find anything online that might help with this error. 我似乎找不到任何可能有助于解决此错误的在线信息。 So far as I can tell, the JVM is the same (aside from OS X/Linux versions), as are the versions of Grails and Groovy. 据我所知,JVM与Grails和Groovy的版本相同(除了OS X / Linux版本)。

You do not need Groovy or Grails installed on the web server, you just need to deploy the war. 不需要的Groovy或安装在Web服务器上的Grails,你只需要部署的战争。 The war contains the groovy-all jar and all Grails jars. 战争包含所有杂物箱和所有Grails瓶。

The problem here is that somehow the compiled classes from STS are making it into your war. 这里的问题是STS的已编译类以某种方式使其陷入了战争。 It looks like STS is using Groovy 1.8 but you're using 1.3.x which uses Groovy 1.7 which doesn't have the BytecodeInterface8 class. 看起来STS使用的是Groovy 1.8,但您使用的是1.3.x,它使用的Groovy 1.7没有BytecodeInterface8类。

Are the STS classes compiled to WEB-INF/classes? STS类是否已编译为WEB-INF / classs? That's probably the problem. 那可能是问题所在。 I always change it to target/eclipseclasses so they're not under web-app and are ignored when you build the war. 我总是将其更改为target / eclipseclass,因此它们不在web-app下,并且在建立战争时将被忽略。 To change it go to Project|Properties, Java Build Path section, Source tab and change the "Default output folder". 要进行更改,请转到“项目” |“属性”的“ Java构建路径”部分的“源”选项卡,然后更改“默认输出文件夹”。

Another option is to build the war on a clean machine that's not used for development. 另一种选择是在不用于开发的干净机器上打仗。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 在GlassFish / Payara上部署War时出现java.lang.NoClassDefFoundError - java.lang.NoClassDefFoundError when deploying war on GlassFish/Payara Grails插件安装错误:java.lang.NoClassDefFoundError:org / grails / plugins / tomcat / fork / ForkedTomcatServer $ _findSystemClasspathJars_closure3 - Grails Plugin install error: java.lang.NoClassDefFoundError: org/grails/plugins/tomcat/fork/ForkedTomcatServer$_findSystemClasspathJars_closure3 java.lang.NoClassDefFoundError: org/quartz/SchedulerException - java.lang.NoClassDefFoundError: org/quartz/SchedulerException Tomcat 构建错误:java.lang.NoClassDefFoundError - Tomcat Build Error: java.lang.NoClassDefFoundError 击中jsp时java.lang.NoClassDefFoundError - java.lang.NoClassDefFoundError when hit the jsp java.lang.NoClassDefFoundError:org / skife / jdbi / v2 / DBI - java.lang.NoClassDefFoundError: org/skife/jdbi/v2/DBI 如何在春季解决java.lang.NoClassDefFoundError:org / hibernate / QueryTimeoutException - how to resolve java.lang.NoClassDefFoundError: org/hibernate/QueryTimeoutException in spring java.lang.NoClassDefFoundError:org / ajax4jsf / resource / InternetResourceBuilder - java.lang.NoClassDefFoundError: org/ajax4jsf/resource/InternetResourceBuilder java.lang.NoClassDefFoundError:org / apache / juli / logging / LogFactory - java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory java.lang.NoClassDefFoundError:设置了org / hibernate / Session休眠jar - java.lang.NoClassDefFoundError: org/hibernate/Session hibernate jars is set
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM