天天看點

osgi一個簡單例子由于包名導緻的NoClassDefFoundError

osgi原理與最佳實踐dictionary的例子,按照書上的文字一步步的建立了四個project,但是報名是自己寫的,沒有注意太多,DictQuery、LocalDictQuery、RemoteDictQuery的Activator包名、Service接口和Local、Remote的實作的包名都相同,啟動後發現LocalDictQuery和RemoteDictQuery都是RESOLVED狀态,start了下,竟然抛出一堆堆棧

百思不得其解,打斷點進去,也的确是抛出了異常。忽然想到上午看到一文章,說處理遺留系統,經常遇到NullPointerException之類的異常,就是跟每個bundle單獨一個classloader有關,有一些懂jvm底層的,問題處理起來會好些。于是想是不是跟包名有關。試着改了包名,重新開機,ss,竟然是ACTIVE了。真是暈菜,這也有影響,不過現在還沒入門還是不好找原因的,先記錄下來吧。