广告合作
  • 今日头条

    今日头条

  • 百度一下

    百度一下,你就知道

  • 新浪网

    新浪网 - 提供新闻线索,重大新闻爆料

  • 搜狐

    搜狐

  • 豆瓣

    豆瓣

  • 百度贴吧

    百度贴吧——全球领先的中文社区

  • 首页 尚未审核订阅工具 订阅

    POI操作Excel报错java.lang.NoSuchMethodError

    来源:网络收集  点击:  时间:2024-06-01
    【导读】:
    使用poi做Excel导出功能时,本地服务器正常,服务器下载为空白文档。检查服务器日志时报错:java.lang.NoSuchMethodError: org.apache.poi.util.POILogger.log(I[Ljava/lang/Object;)V工具/原料morepoi jar包maven项目方法/步骤1/8分步阅读

    检查报错日志如下

    2/8

    定位错误

    1、可能是编码出问题,检查编码

    3/8

    生成EXCEL文件类是否有如下编码:

    response.setContentType(application/x-msdownload);

    response.setCharacterEncoding(utf-8);

    response.setHeader(Content-Disposition, attachment;filename= + new String( fileName.getBytes(gb2312), ISO8859-1 ));

    4/8

    2、检查导入poi的包是否存在多个版本,删除多余版本。

    5/8

    dependency

    groupIdorg.apache.poi/groupId

    artifactIdpoi-ooxml/artifactId

    version3.17/version

    /dependency

    dependency

    groupIdorg.apache.poi/groupId

    artifactIdpoi-ooxml-schemas/artifactId

    version3.17/version

    /dependency

    dependency

    groupIdorg.apache.poi/groupId

    artifactIdpoi/artifactId

    version3.17/version

    /dependency

    6/8

    如果不确定自己引用的是哪个包,可以用一下代码检测class文件走哪个jar包

    7/8

    检测class文件代码:

    ClassLoader classloader =

    org.apache.poi.poifs.filesystem.POIFSFileSystem.class.getClassLoader();

    URL res = classloader.getResource(

    org/apache/poi/poifs/filesystem/POIFSFileSystem.class);

    String path = res.getPath();

    System.out.println(POI Core came from + path);

    classloader = org.apache.poi.POIXMLDocument.class.getClassLoader();

    res = classloader.getResource(org/apache/poi/POIXMLDocument.class);

    path = res.getPath();

    System.out.println(POI OOXML came from + path);

    classloader = org.apache.poi.hslf.HSLFSlideShow.class.getClassLoader();

    res = classloader.getResource(org/apache/poi/hslf/HSLFSlideShow.class);

    path = res.getPath();

    System.out.println(POI Scratchpad came from + path);

    8/8

    将旧的jar从Java build path中删除掉,把workspace里面的包删了再把project clean一下,然后重新部署。

    本文关键词:

    版权声明:

    1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

    2、本站仅提供信息发布平台,不承担相关法律责任。

    3、若侵犯您的版权或隐私,请联系本站管理员删除。

    4、文章链接:http://www.1haoku.cn/art_869974.html

    相关资讯

    ©2019-2020 http://www.1haoku.cn/ 国ICP备20009186号05-07 17:07:54  耗时:0.029
    0.0295s