我的应用程序在开发模式下运行正常,我已经完成了几个运行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完成这项工作。我不确定我是否错过了任何步骤。任何人都可以对此有所了解吗?提前致谢
答案 0 :(得分:0)
您使用的是没有的旧驱动程序mongo-java-driver-2.13.3
方法com.mongodb.MongoClient.getDefaultCodecRegistry()
。此方法是在3.0(link)中引入的,因此升级驱动程序应该可以解决问题。