Когда я добавляю коды фильтров в свой web.xml
<filter>
<filter-name>Pretty Filter</filter-name>
<filter-class>com.ocpsoft.pretty.PrettyFilter</filter-class>
<async-supported>true</async-supported>
</filter>
<filter-mapping>
<filter-name>Pretty Filter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>FORWARD</dispatcher>
<dispatcher>REQUEST</dispatcher>
<dispatcher>ASYNC</dispatcher>
<dispatcher>ERROR</dispatcher>
</filter-mapping>
Я не могу загрузить файл и получаю исключение:
javax.servlet.ServletException: 0
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:659) [jboss-jsf-api_2.2_spec-2.2.8.jar:2.2.8]
at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]
........
Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
at com.ocpsoft.pretty.faces.servlet.PrettyFacesWrappedRequest.getParameter(PrettyFacesWrappedRequest.java:55) [prettyfaces-jsf2-3.3.3.jar:]
at com.sun.faces.context.RequestParameterMap.containsKey(RequestParameterMap.java:147) [jsf-impl-2.2.8-jbossorg-1.jar:]
......
Код JSF:
<h:form enctype="multipart/form-data" id="myForm">
<h:inputFile id="file"
label="file"
value="#{myBean.uploadedFile}"
required="true"
requiredMessage="File not selected !!">
</h:inputFile>
<h:message style="color: red" for="file" /><br />
<h:commandButton id="submit"
action="#{myBean.process}"
value="upload file">
<f:param name="product" value="#{param.product}"></f:param>
</h:commandButton>
<br />
</h:form>
Если я удалю код фильтра из web.xml, я смогу загрузить файл и отправить форму, в противном случае я получаю вышеупомянутое исключение.
Я использую :
- симпатичные лица-jsf2-3.3.3.jar
- переписать-сервлет-2.0.12.Final.jar
- JSF 2.2
ОБНОВЛЕНИЕ:
После стольких исследований я нашел проблему.
Моя структура проекта выглядит следующим образом:
parentProject
|
|---childProject
Где parentProject — проект EAR, а childProject — веб-проект.
Когда я добавляю JAR,
- переписать-сервлет-2.0.12.Final.jar
- переписать-config-prettyfaces-2.0.12.Final.jar
до childProject/Web-INf/lib
работает нормально.
Но требование состоит в том, чтобы добавить банки в parentProject/EarContent/lib
, когда я добавляю банки в это место, отображение красивых лиц не работает.
Я не мог найти никакого решения.