, поскольку hbase недоступен как пакет osgi-ified, но мне удалось создать пакет с плагином maven felix (hbase 0.92 и соответствующим hadoop-core 1.0.0), и оба пучка запускаются в OSGi :)hbase и osgi - не удается найти hbase-default.xml
также добавлен hbase-default.xml в полученный пакет. в результате OSGi-банку, когда я открыть его, структура выглядит следующим образом:
- орг/
- META-INF
- HBase-default.xml
Это было достигнуто <Include-Resource>@${pkgArtifactId}-${pkgVersion}.jar!/hbase-default.xml</Include-Resource>
Проблема возникает, когда я действительно хочу подключиться к hbase. hbase-default.xml не может быть найден, и поэтому я не могу создать файл конфигурации.
Пакет hbase osgi используется из другого пакета osgi, который должен использоваться для получения соединения hbase и запроса базы данных. Этот osgi-пакет используется приложением RCP.
Мой вопрос в том, где я должен поместить свой hbase-default.xml, чтобы он был найден, когда пуск запущен? или почему он не понимает, что файл существует?
Благодарим за любые советы.
- редактировать
Я нашел декомпилятор, чтобы я мог посмотреть источник, где загрузка конфигурации выполняется (Hadoop-ядро, которое не дает каких-либо источников через Maven), и теперь я вижу, что Нити contextClassLoader (и если не доступен классLoader самого класса Configuration), то мне кажется, что он не может найти ресурс, но он должен, согласно описанию, также проверить родителей (но кто является родительским в среде OSGi?)?
Я тестировал, чтобы получить ресурс из OSGi-пакета, который должен использовать hbase, где я добавил hbase-default.xml в созданный файл jar (см. Выше), и там я получаю ресурс, когда получаю contextClassLoader нить. Когда я немного изучил код, я понял, что нет способа установить загрузчик классов для HBaseConfiguration (хотя можно было бы установить загрузчик классов для «простой» конфигурации hadoop-конфигурации, наследуемой HBaseConfiguration, но процедура создания HBaseConfiguration не позволяет, так как он просто создает новый объект в метод создания().
Я действительно надеюсь, что у вас есть некоторое представление о том, как получить это и работает :)
Вы когда-нибудь решают эту проблему? Я сталкиваюсь с той же проблемой. Я пробовал все, что мог, без толку. – dnuttle
нет, извините. было принято решение переключиться на non-osgi для этой части – divadpoc