开发者社区> 问答> 正文

jfianl上传文件报错?报错


[ERROR]-[Thread: http-8080-1]-[com.jfinal.core.ActionHandler.handle()]: /blog/uploadFile

java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at com.jfinal.core.ActionInvocation.invoke(ActionInvocation.java:61)
at com.demo.blog.BlogInterceptor.intercept(BlogInterceptor.java:18)
at com.jfinal.core.ActionInvocation.invoke(ActionInvocation.java:51)
at com.jfinal.core.ActionHandler.handle(ActionHandler.java:73)
at com.jfinal.ext.handler.ContextPathHandler.handle(ContextPathHandler.java:47)
at com.jfinal.core.JFinalFilter.doFilter(JFinalFilter.java:72)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.jfinal.core.ActionInvocation.invoke(ActionInvocation.java:55)
... 17 more
Caused by: java.lang.NoClassDefFoundError: com/oreilly/servlet/multipart/FileRenamePolicy
at com.jfinal.core.Controller.getFiles(Controller.java:684)
at com.jfinal.core.Controller.getFile(Controller.java:696)
at com.demo.blog.BlogController.uploadFile(BlogController.java:60)
... 22 more
Caused by: java.lang.ClassNotFoundException: com.oreilly.servlet.multipart.FileRenamePolicy
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1358)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)

... 25 more

服务器端代码如下:

   public void uploadFile(){
  System.out.println("----------begin upload file------------");
  String  saveDirectory="c:\\";
  UploadFile  uf=getFile("pFile");    

  System.out.println("----------end upload file------------");
//   System.out.println(uf.getFileName());
  
   }

前端uploadFile.jsp 如下 :

  <form id="form1" action="uploadFile" method="post" enctype="multipart/form-data" >
    <input type="file" id="idFile" name="pFile"></input>
    <input type="submit"  value="上传">
  </form>


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

    引用来自“ljy520yzy”的答案

    ......JFinal那里已经提供有了呀。。所有第三方依赖都提供下载的。

    缺少这个jar?cos-26Dec2008.jar 

    网上找半天,没找到,有些要分才能下载,晕,谁有给一个.

    ......JFinal那里已经提供有了呀。。所有第三方依赖都提供下载的。在哪有啊,我怎么找不到啊?? @JFinal嗯嗯 在jfinal.com下载jfinal-1.8-lib.zip这个文件,所有的jar全打在这个zip文件内部谷歌搜呀

    引用来自“andying”的评论

    引用来自“ljy520yzy”的答案

    ......JFinal那里已经提供有了呀。。所有第三方依赖都提供下载的。回复 @jeff-dou:在jfinal-1.8-lib.zip这个文件之中,所有的jar全打在这个zip文件内部最后在这下载的:http://www.servlets.com/cos/cos-26Dec2008.zipjfinal官网上真没发现哪个是coc包额.... @JFinal 建议把cos换成apache的CommonsFileUpload,cos 很多年不更新了,我现在用jFinal+cos上传会报各种错误,用CommonsFileUpload就没有那么多问题。回复 @大嘴吃鸡腿:具体请查看:http://www.oschina.net/code/snippet_932902_51096请问如果是试用apache的,是不是就不用jfinal自带的getfile了?要怎么整合呢?

    引用来自“乐不可支”的评论

    @JFinal 建议把cos换成apache的CommonsFileUpload,cos 很多年不更新了,我现在用jFinal+cos上传会报各种错误,用CommonsFileUpload就没有那么多问题。回复 @JFinal:提问了,麻烦老师帮忙解决解决谢谢回复 @Demon__Fong:发起一个新的问答,需要写点伪代码,这个评论不支持格式回复 @JFinal:你的意思是自己写一个方法,在方法里面把用commonfile这个工具包把file提取出来然后再把请求发给原来的contrrller继续提取其他数据,是这个意思吗?我还是半知半解。连cos在哪都不知道回复 @Demon__Fong:建议在问答区发起个新的问答,应该有不少的朋友也需要这个知道咋弄的。分享给更多人回复 @Demon__Fong:这个过程也可以在拦截器之中做,拦截器中获取HttpServletRequest对象的方法:inv.getController().getRequest();用那个替代cos的第三方解析完成以后,再通过inv.getController().setHttpServletRequest(newRequets)设置成解析完成后的对象三年前的坑。。我已入
    2020-06-22 13:40:36
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

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