簡體   English   中英

部署Grails應用程序時出錯:java.lang.NoClassDefFoundError:org / codehaus / groovy / runtime / BytecodeInterface8

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

因此,我有一個Grails應用程序在本地計算機上的STS中運行,並且試圖將其部署到CentOS / Tomcat服務器VM。 我認為我已經正確安裝了Groovy和Grails,或者至少現在可以通過將它們添加到/ etc / bashrc中的路徑來從控制台運行它們。 但是,當我將編譯后的.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

這里有什么建議? 我似乎找不到任何可能有助於解決此錯誤的在線信息。 據我所知,JVM與Grails和Groovy的版本相同(除了OS X / Linux版本)。

不需要的Groovy或安裝在Web服務器上的Grails,你只需要部署的戰爭。 戰爭包含所有雜物箱和所有Grails瓶。

這里的問題是STS的已編譯類以某種方式使其陷入了戰爭。 看起來STS使用的是Groovy 1.8,但您使用的是1.3.x,它使用的Groovy 1.7沒有BytecodeInterface8類。

STS類是否已編譯為WEB-INF / classs? 那可能是問題所在。 我總是將其更改為target / eclipseclass,因此它們不在web-app下,並且在建立戰爭時將被忽略。 要進行更改,請轉到“項目” |“屬性”的“ Java構建路徑”部分的“源”選項卡,然后更改“默認輸出文件夾”。

另一種選擇是在不用於開發的干凈機器上打仗。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM