有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在java webmethods中关闭下载窗口后无法重定向

在Java中的Web方法应用程序中,我选择一个文件并下载它。当下载窗口关闭时,我将控件定向回父页面。我通过创建一个IPortletURL调用BasePortletPageBean.createRenderURL()来实现它,将其基本URL设置为我要重定向的portlet别名。然后调用FacesContext重定向方法。它在WebMethods8.0中运行良好,我是在WindowsXP机器上开发的。现在我将同一个项目导入到安装了WebMethods8.2的Windows7机器上,但现在它不工作了。请帮帮我

 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;

}

共 (1) 个答案

  1. # 1 楼答案

    确保您始终使用完整路径,Webmethods 8.2还需要URL或图像等任何资源的完整路径。 这可能是你的问题的一个原因