2012-06-13 4 views
1

В моем проекте grails у меня есть многочастная форма, которая захватывает файл и присваивает имя файла переменной, которая хранится в базе данных.Ошибка серверной формы сервера Grails 500 при нулевом объекте при развертывании, но не на локальном хосте

Когда я запустить приложение с локального хоста с флагом производства я могу успешно отправить форму, однако, после того, как развернуть приложение на GlassFish сервере, я получаю сервере ошибку 500:

Cannot get property 'originalFilename' on null object 

I я думаю, что, возможно, это связано с неправильной обработкой мультипартийности. У кого-нибудь есть эта проблема или я могу указать мне в правильном направлении ее решения?

Использование Grails 2.0.4, развернутого на сервере Glassfish 3 с использованием Oracle db.

уместна код из моего действия:

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

Если uploadedFile имеет нулевое значение, то uploadedFile?.empty будет нулевым, так

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

будет делать напротив того, что вы ожидаете

Вы, вероятно, следует делать

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

я принял то, что вы написали во внимание, и обновил свой код. Однако возникает ошибка, существует ли файл при развертывании, но он отлично работает на локальном компьютере. Мне интересно, есть ли что-то, что мне нужно сделать, чтобы оно работало с оракулом. – Universitas

+0

По-прежнему такая же ошибка? –

+0

Изменение кода, как вы заявили, предотвращает ошибку 500, однако основная проблема остается - 'def uploadedFile = request.getFile ('filepath')' всегда приводит к null. Поэтому изменение кода не позволяет ему перейти в оператор if и пытается захватить 'originalFilename'. Я проверил в firebug и есть экземпляр файла. Не уверен, почему он не может пройти. – Universitas

Смежные вопросы