我有一个基于maven的项目。这就是eclipse中项目的样子:
所以我有一个单独的前端和后端,它们被打包成一个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依赖在我的类路径中,如下图所示:
我的问题是,我应该在哪里放置Primefaces jar,以便在运行时为Glassfish
显示?
答案 0 :(得分:0)
您需要将依赖项添加到Glassfish的 / lib 文件夹中,因为这是容器将检查它们的位置,或将它们与可部署的工件捆绑在一起 - 在您的情况下是.ear文件。当您使用maven时,有几个可用的插件可以帮助您,例如Maven Assembly或Maven Ear插件。
- 根据我上面的评论答案。