部署时,空对象上的Grails多部分表单服务器500错误,但不在本地主机上

时间:2012-06-13 19:53:58

标签: grails groovy glassfish

在我的grails项目中,我有一个多部分表单,它抓取文件并将文件名分配给存储在数据库中的变量。

当我从带有生产标志的localhost运行应用程序时,我能够成功提交表单,但是,在将应用程序部署到glassfish服务器后,我收到服务器500错误:

Cannot get property 'originalFilename' on null object

我在想,也许它与正确处理多部分有关。任何人都有这个问题,或者可以指出我正确的方向来解决它?

使用Grails 2.0.4使用Oracle db部署到Glassfish 3服务器。

来自我的行动的相关代码:

def uploadedFile = request.getFile('filepath')// see if there is a file to upload
        if (!uploadedFile?.empty) { // is there a file? 
            sampleInstance.filepath = "file://///FileLocation/${uploadedFile?.originalFilename}" // save the original filename

        }

gsp上的表格:

<g:form action="sample" enctype="multipart/form-data">
 <g:textField name="name" value="${sampleInstance?.name}"/>
 ...
 <input type="file" id="filepath" name="filepath" />
 <g:submitButton name="submit" value="Submit" /></td>
</g:form>

1 个答案:

答案 0 :(得分:1)

如果uploadedFile为空,则uploadedFile?.empty将为空,因此

if (!uploadedFile?.empty) { // is there a file? 

将与您期望的相反

你可能应该这样做

if ( uploadedFile && !uploadedFile.empty) { // is there a file?