Java 为什么我的PrimeFaces上传工具不工作?

Java 为什么我的PrimeFaces上传工具不工作?,java,jsf,file-upload,jakarta-ee,primefaces,Java,Jsf,File Upload,Jakarta Ee,Primefaces,我正在尝试使用primefaces上载工具()。我设法正确地显示了它,它看起来很有效。但是当我去检查数据库时,它是空的。 为什么不上传?我确信访问数据库的EJB是经过良好编程的 当我转到从DB检索的页面时,我还注意到控制台中的这条消息 严重:第1:61行字符“;”处没有可行的替代方案 我不确定这是否与此有关。我没有看到其他错误 我的上传工具代码如下所示: <p:fileUpload fileUploadListener="#{uploadController.handleFileUploa

我正在尝试使用primefaces上载工具()。我设法正确地显示了它,它看起来很有效。但是当我去检查数据库时,它是空的。 为什么不上传?我确信访问数据库的EJB是经过良好编程的

当我转到从DB检索的页面时,我还注意到控制台中的这条消息

严重:第1:61行字符“;”处没有可行的替代方案

我不确定这是否与此有关。我没有看到其他错误

我的上传工具代码如下所示:

<p:fileUpload fileUploadListener="#{uploadController.handleFileUpload}"   
        allowTypes="*.txt;*.doc;*.pdf;" description="Text Documents"/>
这是EJB到DB的访问(我确信这部分工作正常):

}

为什么不将数据添加到数据库中

-------------------------------------------更新----------------------------------------

private UploadedFile uploadedFile;

public void handleFileUpload(FileUploadEvent event) {
    System.out.println("INSIDE THE METHOD!!!!");
    uploadedFile = event.getFile();
    String fileName = FilenameUtils.getName(uploadedFile.getFileName());
    String contentType = uploadedFile.getContentType();
    byte[] bytes = uploadedFile.getContents();

    // Now you can save bytes in DB (and also content type?)
    Garbage garbage = new Garbage();
    garbage.setFilename(fileName);
    garbage.setFile(bytes);
    garbage.setDescription("info about the file");
    garbage.setFileType("File extension");
    fileUploaderEJB.uploadGarbage(garbage);

    FacesContext.getCurrentInstance().addMessage(
            null,
            new FacesMessage(String.format(
                    "File '%s' of type '%s' successfully uploaded!",
                    fileName, contentType)));
}
这是我的web.xml:

<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">

<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>/pages/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
    <welcome-file>pages/index.jsp</welcome-file>
</welcome-file-list>        
<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> 
    </web-app> 

Facesservlet
javax.faces.webapp.FacesServlet
1.
Facesservlet
/页数/*
pages/index.jsp
资源Servlet
org.primefaces.resource.ResourceServlet
资源Servlet
/素数资源/*

我只需要将其添加到我的web.xml中,源代码是正确的

<filter>
    <filter-name>PrimeFaces FileUpload Filter</filter-name>
    <filter-class>org.primefaces.webapp.filter.FileUploadFilter
    </filter-class>
    <init-param>
        <param-name>uploadDirectory</param-name>
        <param-value>/uploaded</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>PrimeFaces FileUpload Filter</filter-name>
    <servlet-name>Faces Servlet</servlet-name>
</filter-mapping>

PrimeFaces文件上载筛选器
org.primefaces.webapp.filter.FileUploadFilter
上传目录
/上传
PrimeFaces文件上载筛选器
Facesservlet

感谢您抽出时间

我只需要将此添加到我的web.xml中,源代码是正确的

<filter>
    <filter-name>PrimeFaces FileUpload Filter</filter-name>
    <filter-class>org.primefaces.webapp.filter.FileUploadFilter
    </filter-class>
    <init-param>
        <param-name>uploadDirectory</param-name>
        <param-value>/uploaded</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>PrimeFaces FileUpload Filter</filter-name>
    <servlet-name>Faces Servlet</servlet-name>
</filter-mapping>

PrimeFaces文件上载筛选器
org.primefaces.webapp.filter.FileUploadFilter
上传目录
/上传
PrimeFaces文件上载筛选器
Facesservlet

感谢您抽出时间

我也遇到了同样的问题,我通过在WEB-INF/lib中添加JAR解决了这个问题:

  • commons-io-2.2.jar
  • commons-fileupload-1.2.2.jar
并在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> 
    <servlet-name>Faces Servlet</servlet-name> 
</filter-mapping>

PrimeFaces文件上载筛选器
org.primefaces.webapp.filter.FileUploadFilter
PrimeFaces文件上载筛选器
Facesservlet

我希望它对你有用

我也遇到了同样的问题,我通过在WEB-INF/lib中添加JAR解决了这个问题:

  • commons-io-2.2.jar
  • commons-fileupload-1.2.2.jar
并在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> 
    <servlet-name>Faces Servlet</servlet-name> 
</filter-mapping>

PrimeFaces文件上载筛选器
org.primefaces.webapp.filter.FileUploadFilter
PrimeFaces文件上载筛选器
Facesservlet

我希望它对你有用

handleFileUpload()方法是否被解雇?如果没有,您是否在web.xml中注册了PrimeFaces上载过滤器?如果您确实注册了,是否可以发布web.xml中显示PrimeFaces上载筛选器信息的部分?您还检查了
字节
数组的大小吗?1-I检查了,该方法没有被触发。2-我更新了托管bean中的最后更改。3-上传过滤器不在web.xml中(我不知道应该是什么样子)4-我没有检查字节数组的大小,但我做了一些更改,我不知道是不是Enoght我做了我只需要注册过滤器我会发布我所做的。是的,这正是我要建议你做的。祝你好运:DDid handleFileUpload()方法被解雇了?如果没有,您是否在web.xml中注册了PrimeFaces上载过滤器?如果您确实注册了,是否可以发布web.xml中显示PrimeFaces上载筛选器信息的部分?您还检查了
字节
数组的大小吗?1-I检查了,该方法没有被触发。2-我更新了托管bean中的最后更改。3-上传过滤器不在web.xml中(我不知道应该是什么样子)4-我没有检查字节数组的大小,但我做了一些更改,我不知道是不是Enoght我做了我只需要注册过滤器我会发布我所做的。是的,这正是我要建议你做的。祝你好运:D