Пакет получает необъяснимое требование к другому пакету при попытке прочитать XML - PullRequest
1 голос
/ 01 июля 2011

Это странная ситуация для меня.У нас большой проект с использованием OSGI, и я модифицирую один из пакетов.Большинство изменений работают нормально, за исключением того, что когда я пытаюсь обновить одну часть кода, чтобы прочитать какой-то XML, пакет отказывается загружаться.Я получаю сообщение об ошибке, в котором говорится, что в моем пакете отсутствует ограничение для jogl версии 0.0.0.My Bundle напрямую не использует JOGL, хотя пакет, от которого он зависит, использует JOG.У нас установлен пакет jogl_1.1.1, которого достаточно для загрузки всех других зависимых от JOGL пакетов;

Комментируя части кода и тестируя, я обнаружил, что могу импортировать все соответствующие классы, но в тот момент, когда я пытаюсь использовать DocumentBuilderFactory для анализа XML, я получаю жалобу на отсутствие пакета JOGL,Это происходит, даже если я добавляю DocumentBuilderFactory в метод, который никогда не вызывается;и происходит, несмотря на то, что я проверяю, что jar-файл XML-APIS находится в пути к классам.

Я совершенно не уверен, каким образом XML-анализ может быть подключен к JOGL.Верна ли версия 0.0.0 в комплекте?Я не знаю, куда идти отсюда, поэтому приветствуется любое предложение относительно причины этого поведения или того, что я мог бы попытаться устранить.

Спасибо

1 Ответ

0 голосов
/ 04 июля 2011

Как и в упомянутом комментарии, было бы полезно узнать, пытаетесь ли вы импортировать его или получаете ClassNotFound.

Если вы пытаетесь импортировать его, но это не удается, возможно, BND немного запутывается, когда анализирует ваш код. Если это так, я бы порекомендовал объявить ваш импорт явно в вашем манифесте. (По крайней мере, в качестве временного решения, чтобы попытаться узнать больше о проблеме).

Если это ClassNotFound, это очень странно. Я заметил, что JOGL использует DocumentBuilderFactory. Я начинаю разбираться в дикой догадке, но вполне возможно, что JOGL делает что-то плохое для загрузки / реализации DocumentBuilderFactory, и это вызывает проблемы в нескольких пакетах.

В качестве окончательного варианта, вы пытались просто создать фиктивный пакет с одним классом, вызывающим DocumentBuilderFactory, чтобы увидеть, есть ли у него такая же проблема?

...