0

MongoDB インスタンスに接続している Grails アプリがあります。私の Datasource.groovy では、次のように宣言しています。

grails {
    mongo {
        host = "localhost"
        port = 27017
        databaseName = "mmib-mongo"
    }
}

Mongo がインストールされ、問題なく起動します。

問題は、ネットワークに接続しているときに grails run-app を使用すると、次の例外がログに記録されることです。

Grails アプリケーションのパッケージ化..... | Grails アプリケーションの実行

Spring Security Core の構成 ... ... Spring Security Core の構成が完了しました

Spring Security LDAP の構成 ... ... Spring Security LDAP の構成を完了 | エラー 2012-11-19 15:42:16,428 [localhost-startStop-1] エラー context.GrailsContextLoader - ブートストラップの実行中にエラーが発生しました: 名前 'mongoDatastore' の Bean を作成中にエラーが発生しました: FactoryBean がオブジェクトの作成時に例外をスローしました。ネストされた例外は org.springframework.dao.DataAccessResourceFailureException: can't call something : MBP-C02J91TWDKQ5.local/192.168.0.131:27017/mmib-mongo; ネストされた例外は com.mongodb.MongoException$Network: 何かを呼び出すことができません: MBP-C02J91TWDKQ5.local/192.168.0.131:27017/mmib-mongo メッセージ: 名前が 'mongoDatastore' の Bean の作成中にエラーが発生しました: FactoryBean がオブジェクトの作成時に例外をスローしました。ネストされた例外は org.springframework.dao.DataAccessResourceFailureException: can't call something : MBP-C02J91TWDKQ5 です。192.168.0.131:27017/mmibモンゴ*; ネストされた例外は com.mongodb.MongoException$Network: 何かを呼び出すことができません: MBP-C02J91TWDKQ5.local/192.168.0.131:27017/mmib-mongo

ネットワークに接続しているときに、Grails/Mongo が localhost の代わりにその IP アドレスを使用したい理由の手がかりは、/etc/hosts で 127.0.0.1 であることを確認しました

4

1 に答える 1

0

Homebrew は MongoDB に、パブリック インターフェイスや ".local" ホスト名ではなく、127.0.0.1 でのみリッスンするように指示します。

https://github.com/mxcl/homebrew/blob/master/Library/Formula/mongodb.rb#L95

mongod.conf のローカル コピーから bind_ip 行を削除し、ポート 27017 をファイアウォールで保護するか、mongod.conf の「bind_ip」エントリを変更してみてください。

于 2012-11-20T20:31:17.310 に答える