Restlet в OSGi для не можете найти на COM/солнце/сеть/сервер http/обработчик HttpHandler
Я пытаюсь использовать Restlet во встроенной среде OSGi. Я добавил орг.restlet.jar версии 2.3.0 в пути класса моего теста restlet в комплекте. Но он продолжал давать мне следующую ошибку.
java.lang.NoClassDefFoundError: com/sun/net/httpserver/HttpHandler
В документации говорится, что этой банки должно быть достаточно, но в настоящее время она не работает. Пакет запускается платформойEquinox Framework , которая запускается автономным лаунчером, который впоследствии будет использоваться вне среды Eclipse.
Есть ли еще одна банка фи, что я должен добавить, чтобы получить правильный соединитель сервера? Я не буду использовать сервлеты, поэтому соединителиRestlet являются единственными вариантами.
При ручном запуске пакета я получаю следующее предупреждение:
WARNING: No available server connector supports the required protocols: 'HTTP' . Please add the JAR of a matching connector to your classpath.
Я уже потратил много времени, чтобы заставить его работать, но безуспешно. Заранее спасибо!1 ответ:
Я нашел решение в ответе, опубликованном здесь.
Так что пакет com.солнце.чистая.HTTP-сервера (который является частью JDK) должна подвергаться воздействию окружающей среды OSGi для. Лучшее решение, которое сработало для меня, - это предоставить его через системный пакет во время запуска фреймворка, добавив его к следующему свойству:
org.osgi.framework.system.packages.extra = com.sun.net.httpserver
Если вы используете Restlet в среде OSGi с помощью пользовательского средства запуска фреймворка, добавление указанного выше решения сделает пакет доступным для импорта. Я думаю, что они должны были добавить эту информацию в свою документацию. Эта проблема не возникает, когда Restlet устанавливается в Eclipse и используется непосредственно в среде Eclipse с помощью Eclipse launcher, потому что я думаю, что конфигурация будет автоматически настроена.