Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Tomcat上运行Grails应用程序时出现问题_Tomcat_Grails_Ubuntu - Fatal编程技术网

在Tomcat上运行Grails应用程序时出现问题

在Tomcat上运行Grails应用程序时出现问题,tomcat,grails,ubuntu,Tomcat,Grails,Ubuntu,我正在尝试将Grails应用程序部署到运行在Ubuntu上的Tomcat容器中。我试着“把一切都做好”,但还是无法让它发挥作用。有什么想法吗 我正在运行“Ubuntu服务器12.04.3 LTS”。我安装了与Ubuntu(6.0.35)捆绑的Tomcat。我知道Grails可以使用大量内存,所以我将分配给JVM的内存提高到512MB。Tomcat提供的示例应用程序运行良好 在我的PC(运行Windows7)上,我安装了Grails(最新版本:2.3.7)和NetBeans(版本:7.4) 我创

我正在尝试将Grails应用程序部署到运行在Ubuntu上的Tomcat容器中。我试着“把一切都做好”,但还是无法让它发挥作用。有什么想法吗

  • 我正在运行“Ubuntu服务器12.04.3 LTS”。我安装了与Ubuntu(6.0.35)捆绑的Tomcat。我知道Grails可以使用大量内存,所以我将分配给JVM的内存提高到512MB。Tomcat提供的示例应用程序运行良好

  • 在我的PC(运行Windows7)上,我安装了Grails(最新版本:2.3.7)和NetBeans(版本:7.4)

  • 我创建了一个非常简单的“Hello world”Grails应用程序。我在我的电脑上运行它时遇到了一些问题(我刚刚发布的另一个问题),但它编译得很好,我可以创建一个War文件而没有问题。通过运行“圣杯战争”

  • 我已经使用Tomcat“Web应用程序管理器”上传了War文件。它应该放在/var/lib/tomcat6/webapps中,未打包,一切看起来都很好

  • 但是,当我尝试启动应用程序时(在管理器中选择“启动”),会收到一条“失败-上下文路径处的应用程序/MyTestApp无法启动”消息。我尝试重新启动Tomcat,但遇到同样的问题

当我查看Tomcat日志(catalina.out)时,会记录以下内容:

2014-03-14 20:24:32,148 [http-8080-1] ERROR context.ContextLoader  - Context
initialization failed
org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'grailsApplication' defined in ServletContext
resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed;
nested exception is java.lang.NoClassDefFoundError: javax/servlet/AsyncContext
at java.lang.Thread.run(Thread.java:701) Caused by:
java.lang.NoClassDefFoundError: javax/servlet/AsyncContext
at java.lang.Class.privateGetDeclaredMethods(Class.java:2534)
at java.lang.Class.getDeclaredMethods(Class.java:1855)
...
Caused by: java.lang.ClassNotFoundException: javax.servlet.AsyncContext
似乎找不到“javax.servlet.AsyncContext”类。Grails文档说在Tomcat上运行Grails是小菜一碟,不应该出错。。。“javax.servlet.AsyncContext”类似乎与“Servlet3.0”有关,但我对JavaEE了解不多。我只是觉得所有东西的最新版本都会开箱即用

我需要在服务器上安装什么吗?有什么要添加到Tomcat的吗?或者我应该在应用程序中更改某些配置

我将非常感谢您的帮助!:-)


/来自瑞典的Anders

如果使用具有此Grails版本的Tomcat的适当版本,那将是小菜一碟

Grails的最新版本默认使用Servlet 3.0和嵌入式Tomcat 7.0.52.1(在运行应用程序期间使用),我怀疑它是否与Tomcat 6.0.35兼容。但您可以根据需要将servlet版本降级为2.5或2.4,如下所示:

//BuildConfig.groovy (first line)
grails.servlet.version = "3.0" //2.4 or 2.5

你能发布你的BuildConfig.groovy吗?我想你的目标可能是Tomcat7而不是6.LOL。这仍然是一个疑问。如果你再加上任何其他的可能性,我会非常高兴的@约书亚:啊哈。谢谢!:-)我以为会是这样的。将两个版本拼接在一起可能需要很长时间,因此我将Tomcat7下载到了我的Ubuntu中。(来自Apache主页-版本7.0.52。)关于如何安装它,网上有很好的文档。但我还是无法让它发挥作用。现在我在卡塔琳娜身上发现了一个不同的错误。你知道是什么原因吗?啊,我自己发现的。(数据库连接出错。)问题已解决!谢谢你们两位的帮助。Grails 2.4中有一个未解决的错误,它阻止降级到Tomcat 6。根据Jira的案例:这个错误应该在2.4.1中修复,但是它似乎回到了2.4.3中。有人能证实吗?