1

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

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

到现在为止还挺好。

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

到目前为止我的程序:

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

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

4

2 回答 2

1

我看到两个选择:

  1. 将数据“远离危险”(为它找到一个不在部署目录中的地方;比如数据库)

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

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

于 2013-02-02T16:11:29.880 回答
0

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

实际上,您不断同步两个文件夹

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

同步.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
于 2014-01-29T05:10:10.980 回答