2016-07-22 6 views
1

私のアプリはdevモードで正常に動作し、n devモードを実行していくつかのテストを行った。私はgrailsアプリケーションをサーブレットコンテナ。apacheのtomcatにgrails 3.1.7をデプロイする際の問題

私はコマンドGrailsの戦争を使用して戦争を生成し、その出力は、以下に提供される

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

に埋め込まれたTomcatの範囲を変更した:

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 

Iの両方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で行われたではないですもし私が何かのステップを逃しているか確かめてください。誰もこれにいくつかの光を当てることができますか?ありがとうございます。

答えて

0

古いドライバmongo-java-driver-2.13.3は、 の方法com.mongodb.MongoClient.getDefaultCodecRegistry()を持っていません。このメソッドは3.0(link)で導入されましたので、ドライバをアップグレードして問題を解決する必要があります。

+0

お返事ありがとうございます。私が気になるのは、アプリケーションをjarファイルとして実行するとうまく動作するということです。それは非常に古いmongo-java-driver-2.13.3を使っているはずです。 devモードでもうまく動作します。そのjavaドライバは 'org.springframework.data:spring-data-mongodb:1.8.1.RELEASE'から来て、最新の1.9 * .RELEASEバージョンを使用しようとする試みはビルド時に失敗しました –

+0

なぜあなたは' spring-data -mongodb'? Grailsのプラグインは 'org.grails.plugins:mongodb'です。戦争術ではなく、その作業瓶について:私は正直には分かりません。多分、爆発戦争のデータソースを作成するために別の戦略が使用されているのかもしれません。見るべきコードが多すぎます。時にはそのようなものhttps://teacherlearnstocode.files.wordpress.com/2014/11/a6pswtfcuai7n-5.jpg – Loucher

+0

彼がどのモンゴー・ジャワ・ドライバーを使っていたのか、どうやって分かっているのか不思議です。私はorg.grails.pluginsを使用しています:mongodb:5.0.1とgrails 3.1.10です。私はtomcatに戦争を展開するときだけgthis同じエラーメッセージが表示されます。 run-appでうまくいく – Kirby

関連する問題