便民 发表于 2017-12-24 15:45:18

java.lang.IllegalAccessError: tried to access method org.apache.poi.util.POILogg

  代码说简单也简单,说复杂那还真是寸步难行。
  之前好好的excel导出功能,本地启动调试的时候突然就不行了,一直报上面的错。
  一直在本地折腾了半天,去测试环境上看,又是好的,可以正常导出excel。
  搜索引擎查了下才发现问题所在:
  下面是项目结构:
  client<--service<---dao<--common-utils
  在service层中,pom文件如下:
  

<dependency>  
<groupId>org.apache.poi</groupId>
  
<artifactId>poi</artifactId>
  
<version>3.13</version>
  
</dependency>
  
<dependency>
  
<groupId>org.apache.poi</groupId>
  
<artifactId>poi-ooxml</artifactId>
  
<version>3.13</version>
  
</dependency>
  

  在common-utils中,本地最近为了测试一个功能,(poi读写word),懒得新建工程,就直接加在了common-utils的pom中:
  

      <dependency>  
<groupId>org.apache.poi</groupId>
  
<artifactId>poi-ooxml</artifactId>
  
<version>3.9</version>
  
</dependency>
  
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-scratchpad -->
  
<dependency>
  
<groupId>org.apache.poi</groupId>
  
<artifactId>poi-scratchpad</artifactId>
  
<version>3.9</version>
  
</dependency>
  

  可以看到,两处的jar包版本不同,在idea的maven projects的窗口中可以看到:

  最终打包出来的war包中,lib目录下:

  版本是不匹配的,所以出现了标题中的错误。
  参考:
  http://stackoverflow.com/questions/33415904/apache-poi-parsing-error
  http://stackoverflow.com/questions/34630209/java-lang-illegalaccesserror-tried-to-access-method-org-apache-poi-util-poilogg
  maven依赖规则:
  http://hae.iteye.com/blog/2097302
页: [1]
查看完整版本: java.lang.IllegalAccessError: tried to access method org.apache.poi.util.POILogg