gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 21:54:59 27 4
gpt4 key购买 nike

因此,我有一个在本地计算机上的 STS 中运行的 Grails 应用程序,我正在尝试将其部署到 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 是一样的(除了 OS X/Linux 版本),Grails 和 Groovy 的版本也是一样。

最佳答案

不需要在网络服务器上安装 Groovy 或 Grails,您只需要部署 war。 war 包含 groovy-all jar 和所有 Grails jar。

这里的问题是来自 STS 的编译类以某种方式进入了您的 war 。看起来 STS 使用的是 Groovy 1.8,但您使用的是 1.3.x,它使用的是没有 BytecodeInterface8 类的 Groovy 1.7。

STS 类是否编译为 WEB-INF/classes?这可能是问题所在。我总是将它更改为 target/eclipseclasses,这样它们就不会在 web-app 下,并且在你构建 war 时被忽略。要更改它,请转至项目|属性、Java 构建路径部分、源选项卡并更改“默认输出文件夹”。

另一种选择是在未用于开发的干净机器上构建 war 。

关于tomcat - 部署 Grails 应用程序时出错 : java. lang.NoClassDefFoundError: org/codehaus/groovy/runtime/BytecodeInterface8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7800930/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com