在apache tomcat中部署grails 3.1.7的问题

时间:2016-07-22 08:14:23

标签: tomcat grails

我的应用程序在开发模式下运行正常,我已经完成了几个运行n dev模式的测试。我相信我已经阅读了足够的部署grails应用程序作为servlet容器中的战争。

我已将嵌入式tomcat的范围更改为

provided "org.springframework.boot:spring-boot-starter-tomcat"

我使用命令grails war生成战争,其输出如下:

grails war
:compileJava UP-TO-DATE
:compileGroovy UP-TO-DATE
:findMainClass
:assetCompile UP-TO-DATE
:buildProperties
:processResources UP-TO-DATE
:classes UP-TO-DATE
:compileWebappGroovyPages UP-TO-DATE
:compileGroovyPages UP-TO-DATE
:war
:bootRepackage
:assemble

BUILD SUCCESSFUL

| Built application to build/libs using environment: production

当我在tomcat7上部署然后在tomcat8.0.33(这是嵌入式版本的版本)上部署时,它仍然给我这个错误:

Caused by: java.lang.NoSuchMethodError: com.mongodb.MongoClient.getDefaultCodecRegistry()Lorg/bson/codecs/configuration/CodecRegistry

完整筹码位于pastebin

但有趣的是,当我使用下面的命令运行它时,在安装了tomcat的同一个框中运行正常:

 java -Dgrails.env=prod -Dserver.port=9090 -jar my-grails-app-0.1.war

我真的很想用tomcat完成这项工作。我不确定我是否错过了任何步骤。任何人都可以对此有所了解吗?提前致谢

1 个答案:

答案 0 :(得分:0)

您使用的是没有的旧驱动程序mongo-java-driver-2.13.3 方法com.mongodb.MongoClient.getDefaultCodecRegistry()。此方法是在3.0(link)中引入的,因此升级驱动程序应该可以解决问题。