Мы работаем apache-karaf-4.2.0
во внутренней сети, которая не подключена к Интернету.Мы пытаемся запустить HTTP-сервер в Karaf, и мы решили использовать org.apache.felix.http.bundle-3.0.0.jar
, поскольку он содержит все, что нам нужно, в одном банке (в отличие от возврата всего перечисленного в функции http
в Karaf).
Вот мои шаги по воспроизведению проблемы:
- Загрузите копию
apache-karaf-4.2.0.tar.gz
и распакуйте ее - Загрузите копию
org.apache.felix.http.bundle-3.0.0.jar
- cdв
apache-karaf-4.2.0
mkdir -p system/org/apache/felix/org.apache.felix.http.bundle/3.0.0/
- Скопируйте
org.apache.felix.http.bundle-3.0.0.jar
в только что созданный каталог - Открыть
system/org/apache/karaf/features/standard/4.2.0/standard-4.2.0-features.xml
- Внизу, перед
<feature name="standard"...>
добавьте следующие строки (см. Ниже, поскольку я не могу вставить его в этот список): - Открыть
etc/custom.properties
- Добавьте следующую строку внизу:
org.apache.felix.jettyEnabled =
true
- Выполнить
./bin/karaf
- В приглашении karaf введите:
feature:install felix-http
А вот как должен выглядеть XML в файле standard-4.2.0-features.xml
:
<feature name="felix-http" description="Apache Felix HTTP Bundle" version="4.2.0">
<bundle>mvn:org.apache.felix/org.apache.felix.http.bundle/3.0.0</bundle>
<config name="org.apache.felix.http">
org.osgi.service.http.port=8888
</config>
</feature>
Если я понимаю IncompatibleClassChangeError
, это означает, что что-то было скомпилировано с более старой версией что-то еще .Я предполагаю, что что-то еще - это jetty
, но ничто другое не обеспечивает это.Так что я очень запутался.
Если у кого-нибудь возникнут мысли о том, как продолжить отладку и / или исправление, я был бы очень признателен.