Я собираюсь преобразовать существующий проект OSGi, использующий Jena 2.6.4, в другую среду (от Eclipse Equinox до Apache Felix в сочетании с BndTools). Старый проект на Equinox работал очень хорошо, однако у меня есть некоторые проблемы с новым фреймворком.
Чтобы включить библиотеки Jena в мой проект, я создал новый «Плагин из существующих архивов JAR». Я экспортировал это в развертываемый плагин и поместил в свой локальный репозиторий. Оттуда я мог бы добавить его к пути сборки моего проекта. Казалось, хорошо работает. Его можно скомпилировать, но когда я запустил проект, при первом доступе к Jena (createResource) возникла исключительная ситуация NoClassDefFoundException в org.xml.sax.SAXException.
Чтобы решить эту проблему, я решил обновить библиотеки Jena до 2.7 (с здесь ). Поэтому я сделал те же шаги, что и выше. Проект, опять же, мог скомпилироваться и побежать немного дальше. Теперь вызов createResource не вылетал и работал очень хорошо. Тем не менее, проект потерпел крах при выполнении SPARQL-запроса. Вот выдержка из трассировки стека:
java.lang.NoClassDefFoundError: javax/management/MalformedObjectNameException
at com.hp.hpl.jena.query.ARQ.init(ARQ.java:437)
at com.hp.hpl.jena.query.ARQ.<clinit>(ARQ.java:456)
at com.hp.hpl.jena.query.Query.<clinit>(Query.java:62)
at com.hp.hpl.jena.query.QueryFactory.create(QueryFactory.java:80)
at com.hp.hpl.jena.query.QueryFactory.create(QueryFactory.java:52)
at com.hp.hpl.jena.query.QueryFactory.create(QueryFactory.java:40)
at com.hp.hpl.jena.query.QueryExecutionFactory.makeQuery(QueryExecutionFactory.java:517)
at com.hp.hpl.jena.query.QueryExecutionFactory.create(QueryExecutionFactory.java:193)
И, действительно, я не смог найти определение этого исключения в библиотеках Йены. Я что-то пропустил? Или есть другие идеи, как это решить?
Nico