Невозможно перенаправить после закрытия окна загрузки в веб-методах Java

В моем приложении веб-методов на Java я выбираю файл и загружаю его. Когда окно загрузки закрывается, я сделал так, чтобы элемент управления был направлен обратно на родительскую страницу. Я реализовал это, создав IPortletURL, вызывающий BasePortletPageBean.createRenderURL(), установив его базовый URL-адрес на псевдоним портлета, который я хочу перенаправить. Затем вызывается метод перенаправления FacesContext. Он отлично работал в веб-методах 8.0, и я разработал его на машине с Windows XP. Теперь я импортировал тот же проект в веб-метод 8.2 с установленной машиной Windows 7, но теперь он не работает. Пожалуйста, помогите мне.

 public String downloadMaster() {


    List<Object> selectedRows = getFnamesProvider2().getSelectedRows();

    if (getFnamesProvider2().getSelectedRows() != null
            && getFnamesProvider2().getSelectedRows().size() != 0) {

        for (Iterator iterator = selectedRows.iterator(); iterator
                .hasNext();) {

            com.webmethods.caf.FileNames details = (com.webmethods.caf.FileNames) iterator
                    .next();


            System.out.println("Iterator Output!!!!!!!!!!!!!!!!!!!!!!!"
                    + details.toString());
            FileInputStream fileInputStream = null;
            OutputStream out = null;
            try {

                String filename = "C:/SoftwareAG/MWS/Projects/"
                        + getProjName() + "/"
                        + session.getAttribute("folder").toString()
                        + "/search/" + details.getFileName();

                if (response == null) {
                    response = PortalServlet.getCurrentResponse();
                    setResponse(response);
                }
                if (response.getContentType() == null
                        || (!(response.getContentType()
                                .equalsIgnoreCase("APPLICATION/DOWNLOAD")))) {
                    if (response == null) {
                        response = PortalServlet.getCurrentResponse();
                    }
                    getResponse().setContentType("APPLICATION/DOWNLOAD");
                }
                response.setHeader("Content-Disposition", "attachment"
                        + "filename=" + details.getFileName());

                File fileToDownload = new File(filename);

                fileInputStream = new FileInputStream(fileToDownload);
                response.setContentLength(fileInputStream.available());
                out = response.getOutputStream();
                response.setHeader("Content-Disposition",
                        "attachment;filename=" + details.getFileName());

                int i;
                while ((i = fileInputStream.read()) != -1) {
                    out.write(i);
                }
                fileInputStream.close();
                out.close();

                List<Object> selRows = getFnamesProvider2()
                        .getSelectedRows();



            } catch (Exception e) // file IO errors
            {
                e.printStackTrace();
            } finally {

                try {

                    IPortletURL renderURL = createRenderUrl();

                    renderURL.setBaseURL("/kneipp.NewProject");
                    System.out.println("::::::renderURL::::::" + renderURL);

                    getFacesContext().getExternalContext().redirect(
                            renderURL.toString());



                } catch (Exception e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }



            }


        }
    }

    return OUTCOME_OK;

}

person Cheese    schedule 10.12.2012    source источник


Ответы (1)


Убедитесь, что вы всегда используете полные пути, Webmethods 8.2 также требует полного пути для URL-адресов или любых ресурсов, таких как изображения. Это может быть причиной вашей проблемы.

person Nick    schedule 11.01.2013
comment
Я тоже пробовал, но бесполезно! В связи с неотложной необходимостью мне пришлось вернуться к WM 8.0. - person Cheese; 05.03.2013