java.lang.noclassdeffounderror в Netbeans Jersey Web Services на Glassfish для библиотеки Jodatime

StackOverflow https://stackoverflow.com/questions/8839310

Вопрос

Привет, я в настоящее время использую библиотеку Jodatime в моих веб -сервисах NetBeans Restful на сервере Glassfish с использованием библиотек Jackson.

Я получаю java.lang.noclassdeffounderror для org/joda/time/readable, когда я пытаюсь создать экземпляр класса, который использует библиотеку Jodatime в одном из файлов ресурсов. Например:

В файле StudentResource:

     Controller c = new Controller();

Где класс контроллера импортирует и использует библиотеки Jodatime

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

Это было полезно?

Решение 3

Хорошо, я нашел решение. Очевидно, что мне нужно было сделать, это переместить файл JAR в списке библиотек/файлов JAR. Я делаю это на вкладке библиотеки в свойствах проекта. Более конкретно, файл JAR должен быть перемещен над библиотеками отдыха.

Другие советы

В случае, если кто -то наткнутся на ту же проблему, используя пружину:

Эта проблема возникает, если вы пытаетесь составить карту JSON с объектом Java, используя Джексон, либо через аннотацию @Requestbody на параметре контроллера, либо вручную дезиализацию с использованием ObjectMapper (). ReadValue (json, class.class). Все отлично работает на локальной машине, но при развертывании применения в дезиализацию Glassfish не удается.

Обходной путь Кига, чтобы скопировать joda-time.jar на стеклянную рыбу/модули и перезагружать проблему.

Похоже, в Джире открыта ошибка в этой проблеме:https://java.net/jira/browse/glassfish-20808

На случай, если кто -то другой наткнулся на эту проблему, у нас была аналогичная проблема с комбинацией стеклянной рыбы 3.1.1, Джерси и использования Joda Time. StackTraces как это:

Caused by: java.lang.ClassNotFoundException: org.joda.time.ReadableInstant not found by jackson-mapper-asl [128]
    at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1460)

и т.п.

Обходной путь, который я только что обнаружил, заключалась в том, чтобы сбрасывать копию нашей Joda-Time Jar Time в стеклянную рыбу/модули. Не совсем красиво, но ...

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top