在Glassfish 3.12中部署.war时保留文件

时间:2013-02-01 16:54:37

标签: deployment upload glassfish war

我的项目部署时遇到了一些问题,经过几个小时的网络搜索后,我找不到答案。

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

到目前为止,非常好。

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

到目前为止

我的程序:

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

    我的问题是 这个当前的程序非常容易出现dataloss(我可能会丢失文件!) 有没有直接的方法可以将更改上传到我的服务器而不会丢失在运行时添加的所有文件的风险?

2 个答案:

答案 0 :(得分:1)

我看到两个选择:

  1. 将数据“移出危害之路”(找不到它的地方) 在部署目录中;像数据库一样)

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

  3. 这两个选择中较好的是第一个......它比另一个更便携;每个服务器都支持部署存档。很多服务器都支持基于目录的部署...但它们都有点不同......所以在A上部署的目录结构可能不会在B上部署。

答案 1 :(得分:0)

我有同样的问题,使用XCOPY和事件调度程序解决了。

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

每隔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