2016-12-01 10 views
0

Когда я выполняю mycode от intelliJ Idea, он отлично работает, но когда я запускаю банку на своем сервере, она выдает следующую ошибку. Я использую версию org.mongodb: mongodb-driver: 3.4.1.MongoDB с java Исключение в потоке «main» java.lang.NoClassDefFoundError: org/bson/conversionions/Bson

Exception in thread "main" java.lang.NoClassDefFoundError: org/bson/conversions/Bson 
     at com.myapp.server.mongo.MongoDbHandler.prepareMongoDb(MongoDbHandler.java:68) 
     at com.myapp.server.mongo.MongoDbHandler.<init>(MongoDbHandler.java:22) 
     at com.myapp.server.Client.main(Client.java:167) 
Caused by: java.lang.ClassNotFoundException: org.bson.conversions.Bson 
     at java.net.URLClassLoader$1.run(URLClassLoader.java:372) 
     at java.net.URLClassLoader$1.run(URLClassLoader.java:361) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(URLClassLoader.java:360) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
     ... 3 more 
+0

Не могли бы вы добавить дополнительную информацию? Вы имеете в виду веб-сервер или сервер приложений или ваш сервер mongo? Какую версию Java вы используете? Это сборка maven? У вас есть такая же версия Java на сервере, как и в вашей идее intelliJ? – dirbacke

+0

Скорее всего проблема зависимости. Имеет смысл опубликовать часть ваших 'pom.xml' или' build.gradle', или 'ivy.xml', или везде, где вы определяете зависимости. –

+0

Я использую build.gradle с версией сервера java 1.8 и intellij с 1.7 java-версией – Swapnil

ответ

0

Если бы я должен был догадаться, что вам нужно получить любую библиотеку BSON, которую вы используете; Я бы не сказал, что Монго - это твоя проблема.

ключевая строка здесь: «Вызванный: java.lang.ClassNotFoundException: org.bson.conversions.Bson»

Так говорит, что он не находит, что конкретный класс, я хотел бы посмотреть в IntelliJ и посмотреть какая библиотека BSON, а затем поместите в свой каталог сборки (или java lib) на ваш сервер.

+0

Я пробовал это решение раньше с другой версией библиотеки bson, но я получаю такой же результат. Я обновил мою библиотеку mongo с 2.10.0 до 3.4.0, тогда я столкнулся с этой проблемой – Swapnil

+0

, вам не нужно менять версию, это, вероятно, случай, когда вы не находитесь в каталоге, в котором вы/java думаете, что это должно быть. Самый простой способ проверить - разместить его в том же каталоге, что и ваш баннер, и импортировать <вставить имя файла здесь в библиотеку bson> (то есть импортировать bson3.2.1, исключить расширение файла), чтобы вы могли видеть, является ли это проблемой пути , – Hans

+0

, но из версии 2.10.0 несколько методов становятся устаревшими, поэтому я обновлен с последней версией 3.4.0 – Swapnil

0

Я знаю его старую нить и ее только для тех, у кого есть подобные проблемы. Несколько дней назад я также облицовочные и тот же вопрос с тем же следом ошибки во время работы банки команды line.After перепроверки кода обнаружили, что

It was not a problem of the jar version but its problem of the packaging of the jar

После упаковки банки со всеми надлежащими зависимостями будут решить эту проблему.

Я использовал

maven-assembly-plugin

для упаковки и ее работ.

.