在我的 Java Web 方法应用程序中,我正在选择一个文件并下载它。当下载窗口关闭时,我将控件定向回父页面。我通过创建一个IPortletURL
调用来实现它,将BasePortletPageBean.createRenderURL()
它的基本 URL 设置为我想要重定向的 portlet 的别名。然后调用FacesContext
重定向方法。它在 Web 方法 8.0 中运行良好,我在 Windows XP 机器上开发了它。现在我将相同的项目导入到安装了 Windows 7 的 web 方法 8.2 机器,但现在它不工作了。请帮助我。
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;
}