Ошибка соединения Glassfish & MongoDB: NoClassDefFoundError - PullRequest
0 голосов
/ 05 июля 2018

Я использую сервер Glassfish, который пытается подключиться к MongoDB. Сначала я создал отдельные проекты для сервера и MongoDB. Поэтому сейчас я пытаюсь объединить эти проекты, но все, что я пытаюсь сделать, похоже, приводит к ошибкам.

Текущая ошибка, которую я получаю:

2018-07-05T19:54:36.249+0200|Severe: java.lang.NoClassDefFoundError: org/bson/conversions/Bson

Мне хорошо известно, что ошибка возникает во время выполнения и что возможной причиной является мой путь к классу.

В настоящее время я скопировал весь свой код из одного проекта в другой, добавил зависимости Maven, и произошло следующее:

  • , если я создаю отдельный файл .java для своего MongoDB и запускаю его в той же папке, что и сервер Glassfish, он прекрасно работает.

  • если я запускаю сервер и пытаюсь вызвать методы из другого класса (немного измененные), появляется верхняя ошибка

Пример упрощенного кода без ошибки:

import org.bson.Document;
import org.bson.conversions.Bson;
import com.mongodb.BasicDBObject;
import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoIterable;
import com.mongodb.client.model.Filters;
import com.mongodb.client.model.Updates;

public class MyClass{
    public static void main(String[]args){
        String ip = "127.0.0.1";
        int port = 27017;
        MongoClient mongoClient = new MongoClient(ip,port);

        /* Remaining code */

    }
}

С ошибкой:

import org.bson.Document;
import org.bson.conversions.Bson;
import com.mongodb.BasicDBObject;
import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoIterable;
import com.mongodb.client.model.Filters;
import com.mongodb.client.model.Updates;

public class MyClass{
   private MongoClient mongoClient;
   public MyClass(String ip, int port){
       mongoClient = new MongoClient(ip, port); // Error called here
   }

   /* Remaining code */

}

Вызывается из файла server.java:

MyClass mc = new MyClass("127.0.0.1",27017);

Я также пытался загрузить все файлы json bson отдельно и добавить их в проект, но это не имело никакого эффекта ...

1 Ответ

0 голосов
/ 08 июля 2018

Рабочим решением для меня было удалить весь проект и создать его еще раз. Видимо, была проблема с Eclipse, или я допустил ошибку раньше и забыл об этом.

...