今天寫le一個bundle,名字叫JmsSendBundle,用spring的jms template來實現發送jms消息.,寫完之后,在eclipse環境中運行都正常,但導出到我的osgi環境中,始終報一個錯誤:java.lang.NoClassDefFoundError: javax/naming/Referenceable
搞了一上午,最后比較eclipse和我自己的osgi的啟動環境變量,發現eclipse中osgi.compatibility.bootdelegation的值是true,而我的是false,結果把這個參數改成true之后就可以了.
然后去google了下osgi.compatibility.bootdelegation這個參數的作用,如果該參數值為"true",當一個類或資源查找不到時,類加載器會啟動父類加載器進行最后的查找。該參數的默認值為"true",不知道我的為什么缺省成false了.