在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 楼答案
确保您始终使用完整路径,Webmethods 8.2还需要URL或图像等任何资源的完整路径。 这可能是你的问题的一个原因