我有一个在GlassFish 3.1.1下运行的JSF 2.0应用程序,我希望在PrimeFaces 3.0.1中使用新的FileUpload组件,这需要将表单数据编码为multipart/form-data
,如在:
<h:form id="quoteform" enctype="multipart/form-data">
但是,只要我将上面的enctype属性添加到我的表单中,它就不再起作用了 - 从不调用绑定到我的提交和取消按钮的bean方法。
我确实找到了reference to an issue与Mojarra(我相信的GlassFish的一部分)和多部分/表格数据编码,但它已经差不多两年了 - 当然我现在必须解决这个问题。在GlassFish下使用这种类型的编码需要做些什么,还是需要更新的东西?如果还有一个已知问题,那么罪魁祸首是什么?
答案 0 :(得分:0)
当前的Glassfish 3.1.2 b23中有一个回归,它是作为以前的一些bug修复而引入的,所以我认为它仍然有效。
可能原因的详情在下面和玻璃鱼问题中 票http://java.net/jira/browse/GLASSFISH-18444但它可以 由其他gf 3.1.2用户评论总结“我现在正在 使用Magnolia CMS(http://www.magnolia-cms.com/)体验这一点 每个单独的表格停止在glassfish 3.1.2中使用 以下例外......“
我在本地部署了一个3.1版本的glassfish,我测试过了 readLine()问题与表单multipart不存在,所以会 建议恢复到2.1存档版本的glassfish而不是 3.1.2 b23。
http://java.net/jira/browse/GLASSFISH-18444
“在glassfish 3.1中 用来工作和打印表格数据(的内容 调用getParameter()后仍然可以使用InputStream。这个 玻璃鱼3.1.2的变化可能是因为变化了 GLASSFISH-16740。这些更改将导致使用的Web应用程序出现重大问题 multipart formdata,但还没有使用getParts()方法 检索数据,但一些专有方法。任何电话 解析文件之前的getParameter()将导致解析 multipart formdata失败。我目前正在经历这个问题 每一个单一的Magnolia CMS(http://www.magnolia-cms.com/) 表格在glassfish 3.1.2中停止工作,但有以下例外:“
似乎这个问题与这些问题有关 部署了GLASSFISH 3.1.2;http://java.net/jira/browse/GLASSFISH-18453
http://java.net/jira/browse/GLASSFISH-18444
http://java.net/jira/browse/GLASSFISH-16740“与getParameter()/ getPart()不相容的重大更改”影响 版本:3.1.2_b23
因此,这会影响网站中有文件上传的任何表单 多部分表单组件。我可以在本地复制这个问题 glassfish 3.1.2_b23。