开发者社区> 问答> 正文

问一个关于servlet的问题?报错

我写了一个servlet,在post方法里面使用try-catch包裹代码,由于本人疏忽加上maven智能,在文件上传时我只添加了common-fileupload依赖,maven自己下载了io包,本地跑当然没问题,我就直接打包上了服务器,可是前台在调用文件上传时老报错(前后端分工合作),并且说没有错误信息,然后我就纳闷了,服务器上也没有捕获到异常,怎么就这样停止运行了。后来我跑到前端那一看,明明是500并提示classnotfound嘛。

记得初学servlet时,错误信息的确都是直接打印到页面的,后来用了框架就没有这种情况了。像springmvc它的控制器可以捕获异常并打印日志信息,实际上它也是由servlet衍生的,不过自己捕获了异常,不再由上面处理了,但是我在servlet里面自己捕获异常为什么不行呢。它还是给整到页面上去了。


本人才疏学浅,菜鸟一枚,望懂的前辈指教下!

展开
收起
爱吃鱼的程序员 2020-06-09 14:58:02 483 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    我来顶顶走过路过不要错过,快来看一看,瞧一瞧!classnotfound哪一个?fileupload确实是依赖io的缺少jar,还没进servlet就出错了,所以你捕获不到<divclass='ref'>

    引用来自“前面有人”的评论

    缺少jar,还没进servlet就出错了,所以你捕获不到<divclass='ref'>

    引用来自“阿信sxq”的评论

    classnotfound哪一个?fileupload确实是依赖io的回复<aclass='referer'target='_blank'>@Lucare:既然是classnotfound,那就是类加载的时候就出错了噻,还没有执行servlet呢,怎么捕获嘛,你要让他不打印出来,应该从web容器入手回复<aclass='referer'target='_blank'>@阿信sxq:为什么在servlet中无法捕获异常那重点是什么,你又没说清楚可能是你要捕获的异常类型和抛出的异常类型不一样你的问题出在类加载时,应该是在classloader的流程里,异常处理也在<spanstyle="font-size:13.3333330154419px;">classloader里,里面捕获后做了处理,所以你外面捕获没有用<spanstyle="font-family:Verdana,sans-serif,宋体;font-size:14px;background-color:#FFFFFF;">classnotfound,你应该容器都无法启动吧~
    <atarget='_blank'>@Lucare嗯那个只是工具类而已,common-io不是启动就加载的类还是可以启动的

    看一下大致结构:

    <preclass="brush:java;toolbar:true;auto-links:false;">protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{try{//文件上传相关代码}catch(Exceptione){logger.error("fileuploaderrors");e.printStackTrace();}}





    2020-06-09 14:58:18
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载