我有一个Maven项目(ejb容器),其中需要使用jcifs库。我在pom.xml中创建了如下条目:
<dependency>
<groupId>jcifs</groupId>
<artifactId>jcifs</artifactId>
<version>1.3.17</version>
<type>jar</type>
</dependency>一切都很好,我在ear包中看到了jar文件,在项目的依赖项中也看到了它,我可以使用这些类,但在运行时我会得到:
javax.ejb.EJBException: java.lang.RuntimeException: java.lang.NoClassDefFoundError: jcifs/smb/SmbFile
at org.jboss.ejb3.tx.Ejb3TxPolicy.handleExceptionInOurTx(Ejb3TxPolicy.java:63)我做错了什么?
发布于 2012-12-12 15:11:27
右键单击the项目,然后转到属性-> Java模块依赖项。检查Maven依赖项是否为checked.If,而不是检查并重新部署。
发布于 2022-02-20 10:44:49
我愿意帮助那些和我一样愚蠢的人这并不是这个问题中所要求的相同场景,但是这个问题帮助我解决了我的问题。
我在一个临时文件中写了一些代码,在我的例子中是Intellij。在此之前,我将jcifs依赖项添加到我的maven项目中,假设临时文件会在那里找到它,这在事后看来有点愚蠢,因为临时空间如何知道。
所以我的建议是,看看依赖关系会在哪里产生实际影响,即是否可用-编译时,运行时,暂存空间?
我还想提一下,我使用了这个库,它在我的https://github.com/hierynomus/smbj上运行得很好。
因此,在我的示例中,我编辑了运行配置,以便将maven模块配置放入类路径中。
所以我猜@SANN3的答案对于实际问题是正确的。

https://stackoverflow.com/questions/11882880
复制相似问题