【发布时间】:2018-03-06 09:25:22
【问题描述】:
我在尝试使用 p:fileUpload 上传文件时收到错误消息。 我尝试了 maven clean 和 maven install 来更新依赖。 我多次更改 web.xml。我相信问题在于与我的注释的关系,我正在使用@Autowired (Spring),但我将其更改为不工作。 我该如何解决这个问题?
我正在使用: Primefaces 6.0, 爪哇 8, 弹簧数据, 春季MVC
我的网络 xml:
<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>
<url-pattern>*.jsf</url-pattern>
<dispatcher>FORWARD</dispatcher>
<dispatcher>REQUEST</dispatcher>
<dispatcher>ASYNC</dispatcher>
</filter-mapping>
JSF:
<p:fileUpload id="fileDescAto" auto="true" multiple="false"
invalidFileMessage="Tipo de Arquivo Inválido:"
disabled="#{not empty searchDocumentoBean.descAtoArquivoFileName}"
update="messagesDialog @this panelGroupFileDescription"
allowTypes="/(\.|\/)(pdf)$/" sizeLimit="10485760"
invalidSizeMessage="Tamanho de arquivo excedido (10MB):"
fileUploadListener="#{searchDocumentoBean.adicionaArquivoUpload}"
label="Escolher Arquivo..." mode="advanced" />
豆:
public void adicionaArquivoUpload(FileUploadEvent ev) {
String[] name = ev.getFile().getFileName().split("\\\\");
descAtoArquivo = ev.getFile().getContents();
descAtoArquivoFileName = name[name.length-1];
}
public void removeArquivoUpload() {
descAtoArquivo = null;
descAtoArquivoFileName = null;
}// GET AND SET OMITED
头部注释我的豆子:
@Component
@Scope("view")
@ManagedBean(name = "searchDocumentoBean")
@URLMappings(mappings = {
@URLMapping(id ="searchDocumento", pattern = "/searchDocumento", viewId = "/resources/pages/documento/searchDocumento.jsf")
})
我尝试使用文件上传时出现错误控制台
在处理RENDER_RESPONSE 6: UIComponent-ClientId时得到javax.faces.event.AbortProcessingException错误
08:43:55,231 SEVERE [javax.enterprise.resource.webcontainer.jsf.application] (http-/0.0.0.0:8080-2) Error Rendering View[/resources/pages/documento/searchDocumento.xhtml]: javax.faces.event.AbortProcessingException: java.lang.NullPointerException
at org.primefaces.context.PrimePartialResponseWriter.startMetadataIfNecessary(PrimePartialResponseWriter.java:303) [primefaces-6.0.jar:6.0]
at org.primefaces.context.PrimePartialResponseWriter.startUpdate(PrimePartialResponseWriter.java:142) [primefaces-6.0.jar:6.0]
Caused by: java.lang.NullPointerException
at org.primefaces.util.ResourceUtils.filterStylesheets(ResourceUtils.java:96) [primefaces-6.0.jar:6.0]
at org.primefaces.context.PrimePartialResponseWriter.startMetadataIfNecessary(PrimePartialResponseWriter.java:287) [primefaces-6.0.jar:6.0]
... 49 more
08:43:55,246 SEVERE [javax.enterprise.resource.webcontainer.jsf.context] (http-/0.0.0.0:8080-2) JSF1073: javax.faces.event.AbortProcessingException obtido durante o processamento de RENDER_RESPONSE 6: UIComponent-ClientId=, Message=java.lang.NullPointerException
08:43:55,240 SEVERE [javax.enterprise.resource.webcontainer.jsf.application] (http-/0.0.0.0:8080-5) Error Rendering View[/resources/pages/documento/searchDocumento.xhtml]: javax.faces.event.AbortProcessingException: java.lang.NullPointerException
2017 年 9 月 27 日更新 我收到错误: JBWEB000281:Servlet 映射指定了一个未知的 Servlet 名称 Faces Servlet´
我的 web.xml 哪里出错了?
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
<filter>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class>
<init-param>
<param-name>thresholdSize</param-name>
<param-value>51200</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<servlet-name>Faces Servlet</servlet-name>
</filter-mapping>
<filter-mapping>
<filter-name>openEntityManager</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>
【问题讨论】:
-
从这里开始:stackoverflow.com/questions/18387993/…(这是重复的 imo)
-
那么我发布的链接中的信息呢?
-
我已经访问过这个链接,它没有解决我的问题,我已经尝试更改注释(如果适用),但它没有解决我的 p:fileUpload 问题。我想知道是否需要任何其他配置。我访问了 Primefaces 页面以查找更多信息,但 web.xml、bean 和 jsf 的实现似乎与 sweb 站点上显示的相匹配。
-
我相信这是使用“Autowired”的依赖注入问题,因为这是我在互联网论坛上搜索时发现的唯一区别。我也试过 Primefaces 论坛,但如果使用“Autowired”与 primefaces 组件的故障有关,我没有得到任何回应。
-
不管这一切,在我发布的链接中,它明确指出在一个类上同时使用
@ComponentAND@ManagedBean是错误
标签: spring jsf file-upload primefaces