2011-10-17 1 views
2

私はローカルマシン上のSTSでGrailsアプリケーションを実行しています。 TomcatサーバーVM。私はGroovyとGrailsを正しくインストールしたと思っています。少なくとも、コンソールから/ etc/bashrcのパスに追加して実行することができます。私は私のコンパイル済みの.warファイルを取る、とTomcatサーバのwebappディレクトリに入れて、サーバーを再起動したときしかし、それはこのエラーがスローされます。Grailsアプリケーションをデプロイする際にエラーが発生しました:java.lang.NoClassDefFoundError:org/codehaus/groovy/runtime/BytecodeInterface8

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バージョンとは別)。

答えて

7

あなたはではありません。では、GroovyまたはGrailsがWebサーバーにインストールされている必要があります。単に戦争を展開するだけです。戦争には、すべての瓶とすべてのGrailsジャーが入っています。

ここでの問題は、何とかSTSのコンパイルされたクラスがあなたの戦争にそれを作り出していることです。 STSはGroovy 1.8を使用しているようですが、Groovy 1.7を使用する1.3.xを使用していますが、これにはBytecodeInterface8クラスがありません。

STSクラスはWEB-INF/classesにコンパイルされていますか?それはおそらく問題です。私はいつもそれをtarget/eclipseclassesに変更して、web-appの下にはないので、戦争を構築するときは無視されます。変更するには、Project | Properties、Java Build Pathセクション、Sourceタブに移動し、 "Default output folder"を変更します。

もう一つの選択肢は、開発に使用されていないクリーンなマシンに戦争を構築することです。

+0

私はすでにSTSの別のディレクトリを使用していました。 VMにインストールしてそこからコンパイルする方法を見てみましょう。 – Trevor

+0

ああ! VMでのコンパイルがうまくいった!その提案に感謝します! :D – Trevor