当前位置: 首页 > 知识库问答 >
问题:

p: fileUpload使用@Autowared bean注释不起作用

昌砚
2023-03-14

尝试使用p:fileUpload上载文件时收到错误。我尝试了maven clean和maven install for update dependeces。我换了网站。多次使用xml。我相信问题是与我的Anotion的关系,我正在使用@Autowired(Spring),但我改变了它,它不起作用。我如何解决这个问题?

我正在使用:Primeface 6.0,Java8,Spring Data,Spring MVC

我的web 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" />

Bean:

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

头部注释My bean:

@Component
@Scope("view")
@ManagedBean(name = "searchDocumentoBean")
@URLMappings(mappings = {       
        @URLMapping(id ="searchDocumento", pattern = "/searchDocumento", viewId = "/resources/pages/documento/searchDocumento.jsf")
})

当我尝试使用文件上传时出现错误控制台

javax。面孔。事件在处理RENDER_响应6:UIComponent ClientId期间获得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

更新27/09/2017我出现错误:JBWEB000281:Servlet映射指定未知的Servlet名称Faces Servlet'

我的网络中出现了一个错误。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>

共有1个答案

方苗宣
2023-03-14

这解决了我的问题:

p中的侦听器方法:在primefaces中从不调用fileUpload

除此之外。我需要指定Faces Servlet的位置:

<servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
</servlet>

javax。面孔。网络应用。FacesServlet

我需要为文件上传指定资源primefaces

<context-param>
        <param-name>primefaces.UPLOADER</param-name>
        <param-value>commons</param-value>
 </context-param>

在primeface的某些版本中,没有必要指定这种配置。我目前使用的是6.0版本,它认为这种规范在web.xml没有必要,因为它是一个较新的版本,但它是必要的。

 类似资料:
  • 我有一个简单的类叫BeaconDao 然而,当我用@service或@component标记beaconDao时,一切都运行得非常好。有人能看出问题所在吗?

  • 问题内容: 我正在尝试使用Java批注,但似乎无法使我的代码认识到其中存在。我究竟做错了什么? 问题答案: 您需要使用注释界面上的@Retention注释将注释指定为运行时注释。 即

  • 问题内容: 我知道有一些关于此的帖子,但是它们大约一年了,没有任何回应。实际上,我们在PostgreSQL 8.4上使用的是Hibernate 4.2.1.Final。我们有两个这样的实体 实体A(顶级层次结构类) 实体B(子类) 如您所见,使用注释了一个实体,但是当使用来获取顶级类时 我们也通过属性获得了B子类。实际上,SQL语句包含。这仍然是Hibernate第四版中的错误,还是我做错了什么?

  • 问题内容: 我从Spring Framework开始,想做一个带有注释的HelloWorld,我已经创建了一个控制器和一个视图,我猜它是基本的hello工作。但是,我想使用注释,因为我不能再使用SimpleFormController(已弃用)。 我收到的错误是Estado HTTP 404-/av/index.jsp 我正在使用Netbeans,并将示例基于它提供的基本模板。我有以下文件,我可以

  • 我尝试使用SmtpAuthenticator创建邮件服务。组件已正确启动,但用户名和密码字段中存在空值。为什么会这样?