2012-03-05 48 views
1

我一直在努力讓我的OSGi應用程序在eclipse外運行。這當然不是那麼簡單,因爲我認爲這不僅僅是運行java -jar org.eclipse.osgi_3.7.1.jar並安裝插件的情況。OSGi - 在外界運行

我希望這是最後一個問題

值java.sql.SQLException:找到了JDBC沒有合適的驅動程序的:mysql://本地主機:3306/

這工作正常蝕。我有一個持久性包和幾個碎片包,根據我需要的數據庫類型加載。然後,我還有另一個數據庫JDBC驅動程序包。在Eclipse中我可以運行它,走出側蝕我一直在努力的一切,包括使用的類加載器來加載驅動程序

Activator.context = bundleContext; 

Class.forName("com.mysql.jdbc.Driver"); 

try { 
    context.getBundle().loadClass("com.mysql.jdbc.Driver"); 
} catch (ClassNotFoundException e) { 
    e.printStackTrace(); 
} 

任何想法,看什麼呢?從我可以看到我的設置是相同的,都有相同的捆綁運行。

回答

2

您的包是否導入包com.mysql.jdbc

閱讀下面的wiki頁面的一些背景知識,爲什麼這可能Eclipse內部而不是在一個適當的OSGi環境中工作:http://wiki.osgi.org/wiki/Why_does_Eclipse_find_javax.swing_but_not_Felix%3F

+0

,我注意到運行Eclipse之外奇怪的是,我不得不等進口增加了捆綁像javax.net一樣可以使用不同的FTP。 eclipse中的持久性捆綁包不需要導入com.mysql.jdbc,但是我添加了它來嘗試並解決問題,但無濟於事 – Kris 2012-03-05 10:51:25

+0

儘管我認爲我只是制定了它的內容。在eclipse中,我有一個包含一堆JAR的目標平臺。我猜這個問題並不是所有這些在獨立運行時都可用 – Kris 2012-03-05 10:52:28

+0

我的eclipse目標環境中有許多額外的不需要的JAR。我刪除了這些並測試了我的應用程序。它仍然正常工作。我現在已將所有的jar安裝在我的外部版本中,但仍然出現相同的錯誤。哎呀 – Kris 2012-03-05 12:19:38