При добавлении зависимости в проект MAVEN и развертывании на GLASSFISH вылетает ERROR

138
24 сентября 2019, 14:40

В web проекте Java есть 2 объекта типа String - JSON и JSONSchema. Пытаюсь проверить соответствует ли json схеме. Добавляю в зависимости проекта Maven - Jackson. Он работает в связке вот с этой либой:

<dependency>
            <groupId>com.github.fge</groupId>
            <artifactId>json-schema-validator</artifactId>
            <version>2.2.6</version>
</dependency>

Как только добавляю зависимости этой либы, проект перестает деплоится. В качестве локального сервера использую GlassFish.

ERROR:

java.io.IOException: com.sun.enterprise.admin.remote.RemoteFailureException: Error occurred during deployment: Exception while loading the app : java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: org.apache.catalina.LifecycleException: java.lang.ClassNotFoundException: org.joda.time.ReadableInstant

Пробовал другие версии, не помогло.

Такая проблема сразу после добавления зависимости.

Если написать код и протестировать вне сервера, все работает.

Пример кода:

public static boolean validate(String jsonData, String jsonSchema) {
        try {
            JsonNode schema = JsonLoader.fromString(jsonSchema);
            JsonNode data = JsonLoader.fromString(jsonData);
            final JsonSchemaFactory factory = JsonSchemaFactory.byDefault();
            JsonValidator validator = factory.getValidator();
            ProcessingReport report = validator.validate(schema, data);
            return report.isSuccess();
        } catch (Exception e) {
            System.err.println("ERROR WHILE VALIDATING JSON WITH SCHEMA");
            throw new RuntimeException(e);
        }
    }
Answer 1

java.lang.ClassNotFoundException говорит о том, что в момент компиляции кода класс был, а в рантайме его нет. У json-schema-validator (если верить его pom.xml в maven central) есть зависимость от библиотеки yoda-time (на класс именно из этой библиотеки ругается)

<dependency>
  <groupId>joda-time</groupId>
  <artifactId>joda-time</artifactId>
  <version>2.3</version>
  <scope>compile</scope>
</dependency>

Видимо, для корректной работы выбранного Вами валидатора, Вам нужно добавить в свои зависимости и эту библиотеку.

READ ALSO
transceive() возвращает не то, что должен

transceive() возвращает не то, что должен

Пытаюсь записать/прочитать информацию с NFC тэга (NfcV) M24LR64E-R

122
Почему выдаёт ошибку java.lang.StringIndexOutOfBoundsException: length=0; index=0?

Почему выдаёт ошибку java.lang.StringIndexOutOfBoundsException: length=0; index=0?

У меня есть две картинки, они кликабельные, нажимая на эти картинки, я меняю цвет Action BarНо один код работает отлично, другой абсолютно такой...

155
java.lang.IllegalStateException: Duplicate key

java.lang.IllegalStateException: Duplicate key

Я разрабатываю игровое дополнение для Minecraft и столкнулся со следующей проблемойКогда я выполняю команду на добавление клана, то происходит...

194
Как исправить ошибку подключения к PostgreSQL из Inellij IDEA

Как исправить ошибку подключения к PostgreSQL из Inellij IDEA

Пытаюсь подключиться к БДjar файл подключил как библиотеку

213