gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 04:57:54 24 4
gpt4 key购买 nike

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

}

最佳答案

确保始终使用完整路径,Webmethods 8.2 也需要 URL 或任何资源(例如图像)的完整路径。这可能是导致您出现问题的原因。

关于java - 在 java webmethods 中下载窗口关闭后无法重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13801365/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com