最近在做WebService項目,本地測試沒有問題,打算部署到服務器上,但是部署后,訪問時出現了如下圖1的錯誤:

圖1
圖1報的是沒有找到定義的類的錯誤。刷新頁面有又出現了另外“新”的錯誤:

圖2
根據圖2顯示,起先以為是配置出錯了,導致找不到Client類,從而不能初始化該類。但是經過仔細排查后,發現端口,路徑等配置並沒有錯誤,所以非常疑惑。
后來經過網上查找資料,發現了原因:缺少jaxrpc.jar包,這個包應該是在tomcat目錄中的lib目錄下。我在lib目錄下查看后果然沒有這個包,把這個包添加到lib,重啟服務器后,正常顯示,如圖3:

圖3
也就是說,其實圖2是由圖1引起的,這兩個錯誤是同一個錯誤,都是由於少了
jaxrpc.jar包引起的。其實這個包是依賴於axis.jar的包之一,其他類似包還有如圖4所示:

圖4
另外需要引起重視的是:這里報的是NoClassDefFoundError錯誤,而不是報ClassNotFoundException,前者是在編譯階段發生的,后者是在運行時發生的,而不是編譯階段。
本錯誤還有另外一種解決辦法:
由於這是WebService,也有可能缺少WebService的關鍵包,本項目中,我的lib目錄下同樣缺少如圖5的包:

圖5
將圖5中的包添加到lib目錄,重啟服務器后同樣能解決問題。
注:jar包一定要放在WEB-INF下的lib下,否則web項目不生效。
以上缺少的包均可以從網上下載。