Glassfish - java.lang.NoClassDefFoundError:org / primefaces / model / UploadedFile

时间:2018-02-14 08:28:15

标签: java maven primefaces glassfish-4

我有一个基于maven的项目。这就是eclipse中项目的样子:

enter image description here

所以我有一个单独的前端和后端,它们被打包成一个EAR。该应用程序已部署在Weblogic 12c server上,但现在我必须将其移至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依赖在我的类路径中,如下图所示:

enter image description here

我的问题是,我应该在哪里放置Primefaces jar,以便在运行时为Glassfish显示?

1 个答案:

答案 0 :(得分:0)

您需要将依赖项添加到Glassfish的 / lib 文件夹中,因为这是容器将检查它们的位置,将它们与可部署的工件捆绑在一起 - 在您的情况下是.ear文件。当您使用maven时,有几个可用的插件可以帮助您,例如Maven Assembly或Maven Ear插件。

- 根据我上面的评论答案。