我正在將使用Jena 2.6.4的現有OSGi項目轉換爲另一個框架(從Eclipse Equinox到Apache Felix與BndTools的組合)。關於Equinox的舊項目工作得很好,但是,我在新框架中遇到了一些麻煩。 爲了將Jena庫包含到我的項目中,我創建了一個新的「從現有JAR歸檔插件」。我將它導出到可部署的插件並將其放入我的本地存儲庫。從那裏我可以將它添加到我的項目的構建路徑。它似乎運作良好。它可以被編譯,但是當我啓動項目時,第一次訪問Jena(createResource)時,org.xml.sax.SAXException上出現NoClassDefFoundException。 爲了解決這個問題,我決定將Jena庫升級到2.7(從a here)。所以我做了與上面完全相同的步驟。該項目再次可以進一步編譯和運行。現在,createResource調用沒有崩潰並且工作得很好。但是,該項目在執行SPARQL-Query時崩潰。以下是堆棧跟蹤的摘錄:在OSGi中使用Jena - javax/management/malformedObjectNameException中的NoClassDefFoundException
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)
而且,實際上,我無法在Jena庫中找到此異常的定義。我錯過了什麼?還是有其他想法,該如何解決?
尼科
我可以通過修改Jena的OSGi包裝項目來解決問題。當javax.management包作爲依賴項添加時,那麼一切運行良好。 – 2012-02-18 14:35:37