Получение java.lang.NoClassDefFoundError при использовании библиотеки Google Gson

Я использую Gson library для преобразования объектов в Json и наоборот. Я скопировал jars этой библиотеки в новую папку lib и добавил его в путь сборки проекта в моем Eclipse IDE.

У меня есть один основной класс, в котором я конвертирую объект в Json, используя toJson(), показанный ниже, и отправляю его в servlet, используя Apache HttpClient's HttpPost().

Gson gson= new Gson();
String json = gson.toJson(names);

Но в servlet я не могу преобразовать Json в Object с помощью fromJson(), когда я выполняю следующий код.

Gson gson = new Gson();
Names names = gson.fromJson(s, Names.class);

Выдает следующее исключение:

java.lang.NoClassDefFoundError: com/google/gson/Gson

Есть идеи, почему это могло происходить? Следует ли мне скопировать jars в папку WebContent/WEB-INF/lib вместо новой папки с именем lib?


person Rajath    schedule 09.10.2012    source источник
comment
См. ссылку здесь, относящуюся к вашему тип ошибки   -  person gks    schedule 09.10.2012
comment
Вы добавили gson.jar в свой путь сборки (путь к классам)?   -  person Hardik Mishra    schedule 09.10.2012
comment
Я добавил gson-2.2.2.jar. Меня озадачивает то, что Gson разрешено в одном классе, но не в другом классе (сервлет).   -  person Rajath    schedule 09.10.2012
comment
Что такое s в fromJson вызове. Я сомневаюсь, что это из-за этого. Убедитесь, что это не NULL   -  person Hardik Mishra    schedule 09.10.2012
comment
Это не NULL, и ошибка не из-за этого. s прекрасно. Ошибка находится в строке Gson gson = new Gson().   -  person Rajath    schedule 09.10.2012
comment
В первую очередь вы должны были опубликовать полную трассировку стека ошибок, а также необходимый код. Подробнее читайте в FAQ   -  person Hardik Mishra    schedule 09.10.2012
comment
@HardikMishra Спасибо за предложение, сделаю это позже.   -  person Rajath    schedule 09.10.2012


Ответы (1)


Хорошо, я понял ответ, используя этот пост. Пожалуйста, прочтите комментарии к первому ответу.

Я получаю java.lang.ClassNotFoundException : com.google.gson.Gson ошибка, хотя она определена в моем пути к классам

Мне просто нужно было поместить внешний jars в свою WebContent/WEB-INF/lib папку, и Eclipse позаботился бы о самом build path.

person Rajath    schedule 09.10.2012
comment
Хорошо, что вы нашли решение, но, к вашему сведению, java.lang.NoClassDefFoundError и java.lang.ClassNotFoundException - разные вещи. - person Hardik Mishra; 09.10.2012
comment
У меня были оба типа исключений, когда я выполнял разные динамические веб-проекты с одним и тем же кодом. Но спасибо! Приму к сведению. - person Rajath; 09.10.2012