0

我有一个需要使用 jcifs 库的 Maven 项目(ejb 容器)。我在 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)

我究竟做错了什么?

4

2 回答 2

0

右键单击 web 项目并转到属性 -> Java EE 模块依赖项。检查 Maven 依赖项是否已检查。如果未检查并重新部署。

于 2012-12-12T07:11:27.163 回答
0

我想帮助像我一样愚蠢的人。这与这个问题所要求的情况并不完全相同,但这个问题帮助我找出了我的问题。

我在临时文件中写了一些代码,在 Intellij 中。在此之前,我将 jcifs 依赖项添加到我的 maven 项目中,假设暂存文件会在那里找到它,事后看来有点愚蠢,因为暂存空间怎么知道。

所以我的提示是看看依赖项实际上会在哪里产生影响,即可用 - 编译时间、运行时、暂存空间?

我还想提一下,我使用了这个库,它对我来说非常好用https://github.com/hierynomus/smbj

因此,在我的情况下,我编辑了运行配置,以便将 maven 模块配置带入类路径。

所以我的猜测是 @SANN3 的答案对于实际问题是正确的。

在此处输入图像描述

于 2022-02-20T10:44:49.460 回答