我在存储库.m2中添加了poi 3.0.2,并尝试导入HSSFCell,HSSFSheet,HSSFWorkbook,HSSFRow。它正在编译而没有错误,当我尝试运行应用程序时,出现错误。
我在核心文件夹的pom.xml中添加了依赖项
<dependency>
<groupId>org.apache</groupId>
<artifactId>poi</artifactId>
<version>3.0.2</version>
<scope>provided</scope>
</dependency>
但似乎只有HSSFCell有问题导入。我尝试没有导入该特定类,其他人绝对没问题。我打开了jar,HSSFCell实际上存在于jar中。错误如下。它导致销毁单身人士。
java.lang.NoClassDefFoundError: org/apache/poi/hssf/usermodel/HSSFCell
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2365)
at java.lang.Class.getDeclaredMethods(Class.java:1763)
at java.beans.Introspector$1.run(Introspector.java:1265)
at java.security.AccessController.doPrivileged(Native Method)............
可能的解决办法是什么?
答案 0 :(得分:1)
删除“提供的”范围,然后使用默认(编译)范围。
提供意味着jar在运行时不是必需的,因为它将由某个容器“提供”。如果使用Compile作用域,那么jar类应该在运行时在类路径上可用。
答案 1 :(得分:0)
我找到了另一个解决方案。如果我们提供范围,我们可以在jBoss run.bat中添加类路径,并将该类添加到jBoss lib文件夹中。
它以任何一种方式工作