Java 通过J2EE应用程序压缩运行app server的远程计算机中的文件夹

Java 通过J2EE应用程序压缩运行app server的远程计算机中的文件夹,java,jakarta-ee,Java,Jakarta Ee,我正在开发一个J2EE应用程序。此应用程序需要以下各项: 应用程序必须在运行app server的远程计算机中压缩文件夹,以便其他应用程序可以直接下载此压缩文件夹,而不是逐个下载每个文件 我可以在本地机器上使用绝对路径执行此操作,但我不知道如何使用远程机器。 我用于在本地计算机中压缩的代码: File file = new File(myFolderPath); int index = myFolderPath.lastIndexOf("/"); String folderName

我正在开发一个J2EE应用程序。此应用程序需要以下各项:

应用程序必须在运行app server的远程计算机中压缩文件夹,以便其他应用程序可以直接下载此压缩文件夹,而不是逐个下载每个文件

我可以在本地机器上使用绝对路径执行此操作,但我不知道如何使用远程机器。
我用于在本地计算机中压缩的代码:

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,我应该如何继续呢?
提前感谢。

URL不允许目录列表,因此这是不可能的。您也需要服务器上的绝对路径,或者将URL转换为服务器上的绝对路径,可能需要将a替换为webapp的根文件夹。

URL不允许目录列表,因此这是不可能的。您也需要服务器上的绝对路径,或者将URL转换为服务器上的绝对路径,可能是通过将a替换为webapp的根文件夹。

我的建议是在这种情况下使用消息驱动bean。您有一个MDB,它侦听JMS队列上传入的MSG。邮件包含要压缩的文件夹。然后,消息bean将调用一个助手来压缩提供给MDB的文件夹。我是根据你问题中的细节来做这件事的。有一个应用服务器正在运行,您希望在该服务器上执行压缩操作。在我看来,它将更加高效和干净。

我的建议是在这种情况下使用消息驱动bean。您有一个MDB,它侦听JMS队列上传入的MSG。邮件包含要压缩的文件夹。然后,消息bean将调用一个助手来压缩提供给MDB的文件夹。我是根据你问题中的细节来做这件事的。有一个应用服务器正在运行,您希望在该服务器上执行压缩操作。在我看来,这将更加高效和干净

应用程序必须在中压缩文件夹 应用服务器所在的远程计算机 运行

我想你对你想要压缩的目录的路径有相当的了解。所以,编写与您在本地完成的相同的代码,但在servlet中,创建zip文件,并将zip的内容写入HttpServletResponse的输出流中,以便下载它

应用程序必须在中压缩文件夹 应用服务器所在的远程计算机 运行


我想你对你想要压缩的目录的路径有相当的了解。因此,编写与您在本地完成的相同的代码,但在servlet中,创建zip文件,并在HttpServletResponse的输出流中写入zip内容,以便下载它。

感谢您澄清这一点。还有一件事,如果我有webapp的根文件夹,该应用程序将如何访问它(在远程服务器上)?服务器本身必须压缩文件,然后作为下载交付。感谢您澄清这一点。还有一件事,如果我有webapp的根文件夹,该应用程序将如何访问它(在远程服务器上)?服务器本身必须压缩文件,然后作为下载交付。