我有一个基于 Maven 的项目。这是该项目在 Eclipse 中的样子:
所以我有独立的前端和后端,它们被打包到一个 EAR
中。该应用程序部署在 Weblogic 12c 服务器
上,但现在我必须将其移动到 Glassfish
。我可以部署到 Glassfish 并且我的应用程序正在运行。但是,当我调用使用 Primefaces UploadFile 类的方法时,我收到一条错误消息。这是错误消息:
java.lang.NoClassDefFoundError: org/primefaces/model/UploadedFile
javax.ejb.EJBException: java.rmi.ServerError: Error occurred in server thread; nested exception is:
java.lang.NoClassDefFoundError: org/primefaces/model/UploadedFile
这两个依赖:
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.3</version>
</dependency>
<dependency>
<groupId>org.primefaces</groupId>
<artifactId>primefaces</artifactId>
<version>6.0</version>
</dependency>
都在 POM.xml
(前端和后端)中,并且 Maven 依赖项位于我的类路径中,如下图所示:
我的问题是,我应该将 Primefaces jar 放在哪里,以便在运行时对 Glassfish
可见?
最佳答案
您需要将依赖项添加到 Glassfish 的 /lib 文件夹中,因为容器将在此处检查它们,或将它们与可部署 Artifact (在您的情况下为 .ear 文件)捆绑在一起。当您使用 Maven 时,有几个可用的插件可以帮助您,例如Maven Assembly 或 Maven Ear 插件。
-根据我上面的评论回答。
关于java - Glassfish - java.lang.NoClassDefFoundError : org/primefaces/model/UploadedFile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48782668/