jsf – 将PrimeFaces应用程序部署到GlassFish4会导致java.lang.N
我想使用< p:calendar>在我在Netbeans中开发的JSF应用程序中,所以我添加了PrimeFaces库.但是,当我部署应用程序时,它的错误如下:
Context with name [/ManagedBeansWithComponents] has not yet been started C:UsersDell-pcDocumentsNetBeansProjectsManagedBeansWithComponentsnbprojectbuild- impl.xml:1040: The module has not been deployed. See the server log for details. BUILD FAILED (total time: 1 second) 服务器日志说: Source Document: jar:file:/C:/Users/Dell-pc/Documents/NetBeansProjects/ManagedBeansWithComponents/build/web/WEB-INF/lib/primefaces-3.5.jar!/META-INF/faces-config.xml Cause: Class 'org.primefaces.component.fileupload.FileUploadRenderer' is missing a runtime dependency: java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileItem 这是怎么造成的,我该如何解决? 解决方法
有原因.它很清楚.运行时类路径中缺少所提到的类.解决方案非常简单:将提到的类(或包含它的JAR文件)放在运行时类路径中.正如软件包名称提示的那样,它在http://commons.apache.org/fileupload上可用(而0700则依赖于它).只需将这些JAR下载并放在与PrimeFaces JAR相同的位置,一切都应该很好. 与具体问题无关,请注意PrimeFaces无法解决这个特殊问题.实际上只有在为< p:fileUpload>注册FileUploadFilter时才会出现此问题. web.xml中的组件.但是,自从GlassFish 4.0以来,即使它从未被应用程序使用过,它也会过度预加载在类路径中找到的每个JSF组件和渲染器类.类加载反过来导致检查其所有运行时依赖性.如果它丢失了,那么你得到NoClassDefFoundError.因此,此问题特定于GlassFish 4.0,并且在使用GlassFish 3.x或任何其他servlet容器(如Tomcat或JBoss)时不会发生. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |