0

我需要在 MSWord 文档管理(或任何文本文档编辑器)上实现一个 java 应用程序,并且 word 文档将存储在数据库或服务器等中央存储库中。许多用户将处理文档,这需要完整版本控制。所做的所有编辑/更改都应保存在中央文档中。

我的问题是,是否可以在本地文档编辑器上打开和编辑中央文档(位于数据库中)上保存更改?我的意思是,在访问和编辑中央文档时,我认为他们将在本地副本上执行此操作,并且文档保存操作如何可以将该更改同步到中央副本?有没有办法通过代码来实现它,比如保存事件触发器

用户在其副本中所做的所有更改都应在中央副本上更新。我计划在这种情况下实现类似谷歌文档的工作。邀请您的宝贵建议和有用的链接(如果有)?

4

2 回答 2

1

在 Java 中,您可以监听文件系统并在文件更改时收到通知,因此理论上您可以使用它来查看文档何时被编辑并将其上传到服务器。

但是,您需要解决这些问题:

  • 如果 Java 应用程序在 Word 打开时关闭/崩溃,则不会检测到保存,并且用户对其文档的更改将丢失,并且他们将无法说明原因。
  • 人们在编辑 Word 文档时一直保存它们,以免丢失数据,但他们只希望最终保存签入作为他们的修订版。
  • 多个用户同时编辑同一个文档并覆盖彼此的更改。
  • 在静默自动过程中,用户无法输入描述其更改的评论。

最好有一个手动签入/签出上传/下载过程,而不是尝试自动完成所有操作。

于 2013-04-22T07:09:46.977 回答
1

这是我会考虑的:

一个(在您的情况下为 Java)GUI 应用程序,它显示中央存储库中的文档,并允许启动 Word(或其他)进行编辑,然后签出并将文档锁定在存储库中。然后,当 Word(或其他)进程退出时,将提交更改(可能在弹出确认对话框之后,用户可以选择放弃他们的编辑,或者被要求输入关于他们的更改的评论)并删除文件上的存储库锁定。

然后,您还需要一些机制来处理过时的锁(例如,当用户 PC 在未释放锁的情况下关闭/崩溃时)。请务必使用适用于二进制文件并支持服务器端文件锁定的 VCS,并对应用程序进行编码,以便在您的首选不理想时轻松更改 VCS 软件。

因此,您的 Java 应用程序可能通过执行其他程序来完成大部分工作(用于签出/锁定/提交的 VCS 二进制文件,用于编辑的 GUI 应用程序)。虽然该应用程序看起来相当简单,但看看Netbeans RCPEclipse RCP之类的东西并在这样的平台上构建您的应用程序可能仍然值得。我自己并没有真正使用过它们,所以把它作为一个考虑和研究的想法,而不是作为推荐。

于 2013-04-22T08:34:09.537 回答