日期:2014-05-17  浏览次数:20802 次

有关java.lang.NoClassDefFoundError问题
本人用SmartFile实现上传下载,选择文件点击确定,跳转UpServlet处理,跳出错误页面如下:
exception 

javax.servlet.ServletException: Servlet execution threw an exception


root cause 

java.lang.NoClassDefFoundError: Util/SmartUpload
Servlet.UpServlet.doPost(UpServlet.java:74)
javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)


root cause 

java.lang.ClassNotFoundException: Util.SmartUpload
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523)
java.lang.ClassLoader.loadClassInternal(ClassLoader.java:316)
Servlet.UpServlet.doPost(UpServlet.java:74)
javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

可是SmartUpload.java类就在项目里,在Util包中,为什么说没找到。。很急,求指导。。不胜感激。。

------解决方案--------------------
路径的问题吧,加上根目录
------解决方案--------------------
Util/SmartUpload
这个对应的servlet路径对不,要在web.xml里配置的。
------解决方案--------------------
楼主的上传控件设置的servlet路径有问题 
贴出来看看web xml 以及上传组件
------解决方案--------------------
Util.SmartUpload 改包名试试看。
------解决方案--------------------
主要是找不到该类java.lang.NoClassDefFoundError: Util/SmartUpload

你action路径没问题的servlet也没有。帖出来看
------解决方案--------------------
虽然SmartFile没用过,为啥楼主的包名要大写呢?这个不规范,虽然不会出错,
Util.SmartUpload这个类是你自己写的么?如果是的话看看它有没有在发布的位置编译成class发布,如果没有可能你是环境的问题
------解决方案--------------------
探讨

虽然SmartFile没用过,为啥楼主的包名要大写呢?这个不规范,虽然不会出错,
Util.SmartUpload这个类是你自己写的么?如果是的话看看它有没有在发布的位置编译成class发布,如果没有可能你是环境的问题

------解决方案--------------------
报这个错,只可能是两种情况: 缺jar包 或者 servlet路径问题