【问题标题】:Keep files when deploying .war in Glassfish 3.12在 Glassfish 3.12 中部署 .war 时保留文件
【发布时间】:2013-02-01 16:54:36
【问题描述】:

我的项目部署有点问题,在网上搜索了数小时后,我找不到答案。

情况: 我正在开发一个 Web 应用程序,该应用程序包含在使用过程中生成的上传和其他文件。 为了简单起见,我将这些存储到:.../mywebapp/web/some subfolders/*

到目前为止,一切都很好。

我的问题: 每次我在实际服务器上重新部署我的项目时(更新类/jsp之后) Glassfish 在重新部署期间删除了.../mywebapp/ 的全部内容。

到目前为止我的程序:

  1. 将我的 webapp 的最新版本导出为 .war。
  2. 将更改的文件添加到服务器上的 .war 文件中(重命名为 .zip,然后重新命名为 .war)
  3. 使用管理控制台 (locahost:4848) 在我的服务器上重新部署 .war

我的问题是 这个当前的过程很容易丢失数据(我可能会丢失文件!) 有没有一种直接的方法可以让我将更改上传到我的服务器,而不会丢失在运行时添加的所有文件?

【问题讨论】:

    标签: deployment upload glassfish war


    【解决方案1】:

    我看到两个选择:

    1. 将数据移到“不碍事的地方”(为它找一个不碍事的地方 在部署目录中;像一个数据库)

    2. 切换到目录部署而不是存档部署。

    这两个选择中更好的是第一个……它比另一个更便携;那里的每台服务器都支持部署档案。很多服务器都支持基于目录的部署……但它们的做法都有些不同……所以部署在 A 上的目录结构可能不会部署在 B 上。

    【讨论】:

    • 感谢您的回答。我将对这两种选择进行更深入的研究。关于第 1 项选择:您是否知道在不硬编码硬盘驱动器上的路径的情况下设置默认路径的好习惯。我会管理的。当前的解决方案很简单,因为您可以非常直接地找到应用程序目录。关于选择 2:我也是这么想的,但是我很难找到一个易于理解的 glassfish 教程。只是替换 JSP 文件就崩溃了,我最终需要完全重新安装 glassfish。
    • 很抱歉没有早点发布我的最终解决方案。我选择了将这些文件移出并使用一个单独的 Servlet 来再次传递它们。
    【解决方案2】:

    我遇到了同样的问题,使用 XCOPY 和 Event Scheduler 解决了。

    实际上,您是在连续同步两个文件夹

    每 X 分钟为以下批处理文件运行一个计划任务

    sync.bat:

    xcopy "domain1\applications\%YOUR_APP_NAME%l\path\to\folder" "D:\folder\to\sync" /D /I /Y
    
    xcopy "D:\folder\to\sync" "domain1\applications\%YOUR_APP_NAME%l\path\to\folder" /D /I /Y
    

    开关:

    /D - Only copy newer files if the destination file exists
    
    /I - If the destination does not exist, and you are copying more than one file, this switch assumes that the destination is a folder.
    
    /Y - Overwrite without prompting
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-29
      • 2018-05-03
      • 1970-01-01
      • 2011-12-14
      • 1970-01-01
      • 2018-07-01
      • 1970-01-01
      相关资源
      最近更新 更多