我正在研究拉链J2EE应用程序。此应用程序需要以下内容:
应用程序必须在运行app服务器的远程计算机中压缩文件夹,以便其他应用程序可以直接下载此压缩文件夹,而不是逐个下载每个文件。
我能够在我的本地机器上使用绝对路径这样做,不知道如何继续使用远程机器 代码我用于在本地机器中压缩:
File file = new File(myFolderPath);
int index = myFolderPath.lastIndexOf("/");
String folderName =myFolderPath.substring(index);
String folderPath = myFolderPath.substring(0, index);
File outFolder = new File(folderPath + folderName + ".zip");
if (!outFolder.exists()) {
zip(file, outFolder);
}
此处myFolderPath
是一个字符串。但是,如果它是一个URL,我应该如何继续?
提前谢谢。
答案 0 :(得分:1)
网址不允许目录列表,因此这是不可能的。您还需要服务器上的绝对路径,或者将URL转换为服务器上的绝对路径,可以将http://server/替换为webapp的根文件夹。
答案 1 :(得分:1)
我的建议是在这种情况下使用消息驱动的bean。您有一个MDB,它侦听JMS队列上的传入消息。该邮件包含要压缩的文件夹。然后消息bean将调用一个帮助程序,该帮助程序将压缩提供给MDB的文件夹。我基于您的问题中提供的详细信息。有一个应用服务器正在运行,您希望在该服务器计算机上执行压缩操作。在我看来,它会更加高效和清洁。
答案 2 :(得分:1)
应用程序必须压缩文件夹 app server所在的远程机器 运行
我猜你对要拉链的目录的路径有一个很好的想法。所以你在本地完成了相同的事情,但是在servlet中,创建zip文件并在HttpServletResponse的输出流中写入zip的内容以便下载。