1
我的应用程序在dev模式下运行良好,并且我用它运行n dev模式做了几次测试。我相信我已经阅读了足够的关于在servlet容器中部署grails应用程序的战争。在apache tomcat中部署grails 3.1.7的问题
我已经改变了范围为嵌入式Tomcat来提供
provided "org.springframework.boot:spring-boot-starter-tomcat"
我已经使用命令的grails战争产生的战争和它的输出是下面:
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.I做我不当然,如果我错过了任何步骤。任何人都可以在这个灯上点亮一些灯光在此先感谢
感谢您的回答。令我困扰的是,当我将应用程序作为jar运行时,它工作正常。这应该使用非常古老的mongo-java-driver-2.13.3。即使在开发模式下,它运行良好。 java-driver来自'org.springframework.data:spring-data-mongodb:1.8.1.RELEASE',并且任何使用最新的1.9 * .RELEASE版本的尝试在构建时都失败 –
为什么使用'spring-data -mongodb'?有Grails插件:'org.grails.plugins:mongodb'。而关于那个工作瓶,不是在开战:我真的不知道,也许有人用不同的策略来创建爆炸战争的数据源,也许还有别的。太多的代码行来看。有时它像这样https://teacherlearnstocode.files.wordpress.com/2014/11/a6pswtfcuai7n-5.jpg – Loucher
我很好奇你怎么知道他使用的是哪个mongo-java驱动程序。我正在使用org.grails.plugins:mongodb:5.0.1和grails 3.1.10,并且我只是在将部署战争部署到tomcat时发生同样的错误消息。在运行应用程序上效果很好 – Kirby