java web項目包名不能爲 com.java , java ,javax ...

今天做了個小Demo,隨便取了個包名,就叫做java.filter

這裏寫圖片描述

然後就報 ClassNotFoundException 說找不到我的servlet
然後查啊查,web.xml 配置沒錯 ,在看tomcat服務器的WEB-INF/lib下的classes也有我的servlet 的類文件啊!
然後在百度的一個角落有人說包名不能以com.java開頭,所以改了個包名之後就完美運行了。

這裏寫圖片描述

主要原因:
當寫上com.java , java ,又或者 javax 之類的 包的時候 ,每當 jvm運行時,這些包下的類會被 引導類加載器所加載,而我們寫的類應該是被應用類加載器所加載,所以在會導致 ClassNotFoundException 。

解決方法:
1. 改包名;
2. 自定義一個 ClassLoader 類加載器。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章