Загрузить плагин не вызывает Java Servlet

Я просто начал использовать Flash-модуль Addify вместо стандартного HTML-интерфейса.
И встретил следующую проблему:

когда я нажимаю ссылку «Загрузить файлы», этот прогресс показывается, и статус «завершен» появляется, но на самом деле – ничего не случилось, Java Servlet не вызывается из бэкэнд.

Загружается сервлет и загрузка выполняется следующим образом:

< form enctype="multipart/form-data" method="post" target="uploadFrame" action="/uploadFile?portletId=${portletId}&remoteFolder=${remoteFolder}">... 

После предоставления плагина Uploadify пользовательский интерфейс теперь выглядит так:

часть плагина (конфигурация):

   ... oScript.text+= "$j('#uploadify').uploadify({"; oScript.text+= "'uploader' : 'kne-portlets/js/lib/uploadify/scripts/uploadify.swf',"; oScript.text+= "'script' : '/uploadFile?portletId=${portletId}&remoteFolder=',"; oScript.text+= "'cancelImg': 'kne-portlets/js/lib/uploadify/cancel.png',"; oScript.text+= "'folder' : '',"; oScript.text+= "'queueID' : 'fileQueue',"; oScript.text+= "'auto' : false,"; oScript.text+= "'multi' : false,"; //oScript.text+= "'sizeLimit' : 1000"; oScript.text+= "});"; oScript.text+= "});"; ...  

Параметр ‘scripts’ указывает на Java Servlet на бэкэнд

– это путь к папке, значение которого \\ file-srv \ demo

часть для загрузки:

  Upload Files 

Где моя вина?

Параметр «Script» в настройках плагина указывает на Java Servlet на бэкэнд, и это сделано, но Servlet не запускается.

ошибка, когда параметр «script» неверен: http://sofru.miximages.com/java//

Благодарим вас за помощь.

    Это может иметь много возможных причин (см. Комментарии, которые я опубликовал).

    • Внешний JS не загружен.
    • JS-код синтаксически / логически недействителен.
    • Недопустимый URL-адрес запроса.
    • Сервлет не отображается вообще.
    • Сервлет отображается на неправильный url-pattern .
    • Сервлет не смог запустить / init.

    Трудно найти основную причину, основанную на полученной информации.

    Поскольку вы упомянули, что вы не видели, что какой-либо запрос был запущен на вкладке «Net» FireBug, я думаю, что JS-код просто синтаксически / логически недействителен. Нажав правую страницу и выполните двойную настройку сгенерированного / напечатанного JS-кода.

    Обновление: я попытался воспроизвести вашу проблему.

    1. Я загрузил jquery.uploadify-v2.1.0 (MIT) , извлек его и поместил все содержимое в папку /WebContent/uploadify моего (пустого) веб-проекта игровой площадки в Eclipse.

    2. Я создал файл /WebContent/upload.jsp следующим образом:

          Uploadify test        Upload   
    3. Я создал com.example.UploadServlet следующим образом с небольшой помощью Apache Commons FileUpload (только что размещенные commons-fileupload-1.2.1.jar и commons-io-1.4.jar в /WEB-INF/lib ):

       package com.example; import java.io.IOException; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; public class UploadServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("UploadServlet invoked. Here are all uploaded files: "); try { List items = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request); for (FileItem item : items) { if (!item.isFormField()) { System.out.println("Name: " + item.getName()); System.out.println("Size: " + item.getSize()); System.out.println("Type: " + item.getContentType()); } } } catch (Exception e) { throw new ServletException(e); } } } 
    4. Я зарегистрировал com.example.UploadServlet в web.xml следующим образом:

        uploadServlet com.example.UploadServlet   uploadServlet /uploadServlet  
    5. Я развернул проект, запустил сервер, перешел на http: // localhost: 8080 / playground / upload.jsp , выбрал случайный большой файл из моей папки для загрузки, нажал ссылку « Upload , просмотрел процентный счетчик загрузки до 100% и Наконец, я вижу следующее в stdout:

       Вызывается функция UploadServlet.  Вот все загруженные файлы: 
       Имя: glassfish-v3-windows.exe
       Размер: 50402555
       Тип: приложение / октет-stream
      

    Простите, я не могу воспроизвести вашу проблему. По крайней мере, вышеуказанная информация должна помочь вам начать работу «свеже». Надеюсь, поможет.

    Обновление: согласно комментариям, фильтр ожидает, что он использует тот же сеанс. Хорошо, вы можете сделать это довольно легко, изменив

     '<%= request.getContextPath() %>/uploadFile?portletId=${portletId}&remoteFolder=<%= decodedString %>',"; 

    в

     '<%= request.getContextPath() %>/uploadFile;jsessionid=${pageContext.session.id}?portletId=${portletId}&remoteFolder=<%= decodedString %>',"; 

    У меня была такая же проблема с uploadify 2.1.4. Я играл с этим достаточно долго, чтобы понять, что это проблема с вложенным ie /folder1/folder2/folder3, etc. URI, ie /folder1/folder2/folder3, etc. Как только я изменил свой путь на использование базового пути (just / folder1, или / uploadServlet, как @BalusC) SWF-файл начал отправлять данные на мой сервлет.

    Давайте будем гением компьютера.