Java:上传文件时出现问题
使用 Java (Seam + JBoss) 并在尝试更新文件时遇到很多困难。
我正在使用 Seam fileUpload 标签,并将表单编码类型设置为“multipart/form-data”。但是,当我选择文件并提交表单时,我遇到了异常。
表单代码如下:
<h:form id="registration" enctype="multipart/form-data">
<h:outputText value="#{messages['profile.title']}"/>
<fieldset>
<!-- s:decorate id="usernameDecorate" template="edit.xhtml" -->
<ui:define name="label">Name:</ui:define>
<h:inputText id="name" value="#{editProfileAction.editProfileFormData.name}" required="true">
<!-- a:support id="onblur" event="onblur" reRender="usernameDecorate"/ -->
</h:inputText>
<!-- /s:decorate -->
<!-- s:decorate id="usernameDecorate" template="edit.xhtml" -->
<ui:define name="label">Email:</ui:define>
<h:inputText id="email" value="#{editProfileAction.editProfileFormData.email}" required="true">
<!-- a:support id="onblur" event="onblur" reRender="usernameDecorate"/-->
</h:inputText>
<!-- /s:decorate -->
<ui:define name="label">#{messages['profile.fieldlabel.photo']}</ui:define>
<s:fileUpload id="file" name="file"
data="#{editProfileAction.editProfileFormData.data}"
contentType="#{editProfileAction.editProfileFormData.contentType}"
fileName="#{editProfileAction.editProfileFormData.filename}"
fileSize="#{editProfileAction.editProfileFormData.size}" />
<div class="buttonBox">
<h:commandButton id="saveButton" value="Save" action="#{editProfileAction.update}"/>
 
<s:button id="cancel" value="Cancel" view="/home.xhtml"/>
</div>
我得到的异常如下:
Exception during request processing:
Caused by java.lang.NullPointerException with message: ""
org.jboss.seam.web.MultipartRequestImpl.parseRequest(MultipartRequestImpl.java:391)
org.jboss.seam.web.MultipartRequestImpl.getParameterNames(MultipartRequestImpl.java:530)
org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:84)
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
Using Java (Seam + JBoss) and having a lot of difficulty trying to update a file.
I'm using the Seam fileUpload tag and have the form encoding type set as "multipart/form-data". When I select a file and submit the form, however, I'm getting an exception.
The form code is as follows:
<h:form id="registration" enctype="multipart/form-data">
<h:outputText value="#{messages['profile.title']}"/>
<fieldset>
<!-- s:decorate id="usernameDecorate" template="edit.xhtml" -->
<ui:define name="label">Name:</ui:define>
<h:inputText id="name" value="#{editProfileAction.editProfileFormData.name}" required="true">
<!-- a:support id="onblur" event="onblur" reRender="usernameDecorate"/ -->
</h:inputText>
<!-- /s:decorate -->
<!-- s:decorate id="usernameDecorate" template="edit.xhtml" -->
<ui:define name="label">Email:</ui:define>
<h:inputText id="email" value="#{editProfileAction.editProfileFormData.email}" required="true">
<!-- a:support id="onblur" event="onblur" reRender="usernameDecorate"/-->
</h:inputText>
<!-- /s:decorate -->
<ui:define name="label">#{messages['profile.fieldlabel.photo']}</ui:define>
<s:fileUpload id="file" name="file"
data="#{editProfileAction.editProfileFormData.data}"
contentType="#{editProfileAction.editProfileFormData.contentType}"
fileName="#{editProfileAction.editProfileFormData.filename}"
fileSize="#{editProfileAction.editProfileFormData.size}" />
<div class="buttonBox">
<h:commandButton id="saveButton" value="Save" action="#{editProfileAction.update}"/>
<s:button id="cancel" value="Cancel" view="/home.xhtml"/>
</div>
The exception I'm getting is as follows:
Exception during request processing:
Caused by java.lang.NullPointerException with message: ""
org.jboss.seam.web.MultipartRequestImpl.parseRequest(MultipartRequestImpl.java:391)
org.jboss.seam.web.MultipartRequestImpl.getParameterNames(MultipartRequestImpl.java:530)
org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:84)
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
NullPointerException
您应该了解指针。
在某个地方你没有说
Foo foo = new Foo()
。我敢打赌,堆栈跟踪中还有大约 3 行会告诉我们位置。除非您自己调用 org.jboss.seam.web.MultipartRequestImpl.parseRequest 。NullPointerException
You should learn about pointers.
Somewhere you didn't say
Foo foo = new Foo()
. I bet about 3 more lines down the stack trace will tell us where. Unless you calledorg.jboss.seam.web.MultipartRequestImpl.parseRequest
yourself.我们这里使用richfaces上传:
We used richfaces to upload here: