I'm getting a server error trying to deploy my project after adding a p:fileUpload component.
Here is the exception report that gets printed on the page:
Code: Select all
type Exception report
message
descriptionThe server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: PWC1243: Filter execution threw an exception
root cause
com.sun.enterprise.container.common.spi.util.InjectionException: Error creating managed object for class org.primefaces.webapp.filter.FileUploadFilter
root cause
com.google.common.collect.ComputationException: java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileItemFactory
root cause
java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileItemFactory
note The full stack traces of the exception and its root causes are available in the GlassFish 3 logs.
Here is my web.xml file.
Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>Resource Servlet</servlet-name>
<servlet-class>org.primefaces.resource.ResourceServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Resource Servlet</servlet-name>
<url-pattern>/primefaces_resource/*</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>Comet Servlet</servlet-name>
<servlet-class>org.primefaces.comet.PrimeFacesCometServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Comet Servlet</servlet-name>
<url-pattern>/primefaces_comet/*</url-pattern>
</servlet-mapping>
<filter>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<servlet-name>Faces Servlet</servlet-name>
</filter-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>faces/LoginPage.xhtml</welcome-file>
</welcome-file-list>
</web-app>
Code: Select all
<p:fileUpload id="imageUpload" styleClass="imageUpload"
fileUploadListener="#{uploadSessionBean.action}"
allowTypes="*.jpg;*.png;*.gif"
description="Images"
update="tabSetComp:imageImg" />
public void action(FileUploadEvent event){ }
If I remove the component from the page and remove the FIleUpload Filter code from the web.xml file, the application deploys without an error.
Any ideas on what I'm doing wrong?
Thanks.