playMorphia с mongoLAB IllegalStateException: невозможно вызвать аутентификацию дважды для одного и того же объекта DBObject - PullRequest
0 голосов
/ 07 февраля 2012

Моя игра!Приложение имеет один модуль, морфию.Моя БД - mongolab (на AWS).Он компилируется и запускается в первый раз.Затем сгенерирует эту БД для проверки подлинности исключения всех последующих запросов.Кто-нибудь знает, пытается ли playmorphia проходить повторную аутентификацию при каждом запросе?Любая помощь высоко ценится.Спасибо.

Caused by: java.lang.IllegalStateException: can't call authenticate twice on the same DBObject
    at com.mongodb.DB.authenticate(DB.java:437)
    at play.modules.morphia.MorphiaPlugin.initMorphia_(MorphiaPlugin.java:368)
    at play.modules.morphia.MorphiaPlugin.onApplicationStart(MorphiaPlugin.java:444)
    at play.plugins.PluginCollection.onApplicationStart(PluginCollection.java:480)
    at play.Play.start(Play.java:515)

Ответы [ 2 ]

0 голосов
/ 14 марта 2012

это "исключение аутентификации дважды" выбрасывается в

{@link com.mongo.DB#authenticate(String username, char[] passwd )}

, оно вызывается в конструкторе класса DatastoreImpl с user & pass.поэтому, если вы новый DatastoreImpl () в одном и том же БД дважды, это исключение произойдет.

вы можете попробовать код ниже, надеюсь, это поможет:

DatastoreImpl ds = !this.mongo.getDB(dbName).isAuthenticated()? new DatastoreImpl(morphia, mongo, dbName, userName,asswd.toCharArray()) : new DatastoreImpl(morphia, mongo, dbName);
0 голосов
/ 07 февраля 2012

Ну, проверка подлинности дБ вызывается при запуске воспроизведения.Проблема в том, что когда вы работаете в режиме разработки, игра может перезапускаться при каждом изменении кода в вашем исходном коде java и в исходном представлении.

Я никогда не сталкивался с этой проблемой до того, как я всегда использовал mongodb в1003 * доверенная среда .Но такого рода проблемы следует избегать, вероятно, просто попробуйте / поймать и игнорировать.Не могли бы вы отправить вопрос на https://github.com/greenlaw110/play-morphia/issues/new?

...