Я следовал этой tutorial video, который показывает, как запустить Джерси сервер (EDIT: Сервер, JAX-RS с помощью Apache Wink см принятого ответа) в OSGI. Это короткое видео, и процесс кажется очень ясным. Я не понимаю, как именно HelloWorldResource загружается в Джерси. HelloWorldResource зарегистрирован в контейнере OSGI в качестве сервиса с использованием Apache Felix DependencyActivatorBase (который отлично работает). Из того, что я собираю, Apache Felix Whiteboard должен каким-то волшебным образом отобразить это как ресурс Джерси, но когда я пойду запустить его, я получаю 404.Джерси ресурс не в решении OSGI
Я знаю, что сервис правильно отображается, поскольку он отображается в консоли, когда я выполните команду «services». Я знаю, что сервер работает, или я не получил бы 404 не найден. Я дважды проверил пакеты и верю, что все они установлены правильно.
Любые намеки приветствуются.
Ключ для меня был подмигнул, и доски были загружены. Если Wink - это просто JAX-RS, то почему бы Amdatu не зарегистрировать ресурс, если я просто упал в jersey-server вместо Wink? – harschware
Ярмарка вопрос. К сожалению, программный API для регистрации ресурсов из кода не стандартизирован в JAX-RS, поэтому требуется определенный код реализации. –
У меня было 404 также с этой демонстрацией, но случилось потому, что два набора Jetty, где они были развернуты. (2.2.2 и 2.2.0) 2.2.2 находился в моем локальном режиме и вручную помещал его в блок «Требования выполнения». Другой (2.2.0) был разрешен с помощью кнопки «Решение» Bnd и загружен из концентратора BndTools. В соответствии с диалоговым окном разрешения пакет 2.2.0 был необходим для пакета доски. Может ли это быть ошибкой в инструментах Bnd? Потому что я думаю, что оба набора Jetty, где они действительны. – Treur