今天做了個小Demo,隨便取了個包名,就叫做java.filter
然後就報 ClassNotFoundException 說找不到我的servlet
然後查啊查,web.xml 配置沒錯 ,在看tomcat服務器的WEB-INF/lib下的classes也有我的servlet 的類文件啊!
然後在百度的一個角落有人說包名不能以com.java開頭,所以改了個包名之後就完美運行了。
主要原因:
當寫上com.java , java ,又或者 javax 之類的 包的時候 ,每當 jvm運行時,這些包下的類會被 引導類加載器所加載,而我們寫的類應該是被應用類加載器所加載,所以在會導致 ClassNotFoundException 。
解決方法:
1. 改包名;
2. 自定義一個 ClassLoader 類加載器。