Хобрук: Ваш путь к мастерству в программировании

Liferay 7 Service Gradle Зависимость не устранена

Я пытаюсь использовать класс JSON в своем веб-сервисе, однако, когда я развертываю свой сервис, возникает проблема с ним и моей зависимостью JSON, в частности, с этой строкой в ​​моем файле build.gradle:

compile group: "javax.json", name: "javax.json-api", version: "1.1.2"

Когда я смотрю в оболочке Gogo на свои службы, она показывает Installed вместо Active, а когда я запускаю службу вручную, она говорит:

g! start 809
org.osgi.framework.BundleException: Could not resolve module: 
visualization.fileentries.service.service [809]
Unresolved requirement: Import-Package: javax.json; version="[1.1.0,2.0.0)"

Правильно ли эта зависимость объявлена ​​неправильной или эта зависимость (или ее версия) не поддерживается в Service Builder?

Вот build.gradle:

dependencies {
compileOnly group: "biz.aQute.bnd", name: "biz.aQute.bndlib", version: "3.1.0"
compileOnly group: "com.liferay", name: "com.liferay.osgi.util", version: "3.0.0"
compileOnly group: "com.liferay", name: "com.liferay.portal.spring.extender", version: "2.0.0"
compileOnly group: "com.liferay.portal", name: "com.liferay.portal.kernel", version: "2.6.0"
compileOnly group: "javax.json", name: "javax.json-api", version: "1.1.2"
compile project(":modules:visualization-fileentries-service:visualization- 
fileentries-service-api")
}

buildService {
    apiDir = "../visualization-fileentries-service-api/src/main/java"
}

group = "visualization.fileentries.service"

И файл bnd.bnd:

Bundle-Name: visualization-fileentries-service-service
Bundle-SymbolicName: visualization.fileentries.service.service
Bundle-Version: 1.0.0

Liferay-Require-SchemaVersion: 1.0.0
Liferay-Service: true

Ответы:


1

Мне также нужно было использовать парсер JSON и связанные с ним классы для моего модуля Liferay. Я столкнулся с такими же проблемами, как и у вас, а также с другими ошибками. У меня сработало следующее (компилируется и развертывается нормально).

В файле build.gradle.

compile group: 'org.json', name: 'json', version: '20131018'

Мой импорт для класса java-модуля был:

import org.json.JSONArray;
import org.json.JSONObject;

Надеюсь это поможет.

25.04.2018
  • Большое спасибо, эта версия JSON сработала для меня. Более новые версии по какой-то причине вызвали у меня проблемы с зависимостями (может быть, неподдерживаемая версия Java?). Кроме того, я только что понял, что, вероятно, мог бы повторно использовать классы JSON, включенные в com.liferay.portal.kernel.json, поскольку я не пытаюсь сделать что-то особенное в моем случае, но это прямо здесь решило мою проблему. 25.04.2018
  • Новые материалы

    Аргументы прогрессивного улучшения почти всегда упускают суть
    В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

    Введение в Джанго Фреймворк
    Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..

    Настольный ПК как «одно кольцо, чтобы править всеми» домашних компьютеров
    Вид после 9 месяцев использования С настольных компьютеров все началось, но в какой-то момент они стали «серверами», и мы все перешли на ноутбуки. В прошлом году я столкнулся с идеей настольных..

    Расширенные методы безопасности для VueJS: реализация аутентификации без пароля
    Руководство, которое поможет вам создавать безопасные приложения в долгосрочной перспективе Безопасность приложений часто упускается из виду в процессе разработки, потому что основная..

    стройный-i18следующий
    Представляем стройную оболочку для i18next. Эта библиотека, основанная на i18next, заключает экземпляр i18next в хранилище svelte и отслеживает события i18next, такие как languageChanged,..

    Обзор 20 основных и современных методов работы с массивами в JavaScript
    Вы знаете их всех? В этом коротком посте я покажу сводку методов, доступных в JavaScript для работы с массивами. Я надеюсь, что вы найдете это полезным! В конце поста вы найдете ссылку на..

    Да, но я чувствую необходимость указать, что это или не единственные два.
    Да, но я чувствую необходимость указать, что это или не единственные два. Обучение с подкреплением (в качестве примера) также является важным.