我们在JBoss EAP 4.0.x上有一个集群JEE应用程序我试图设置JBoss Modeshape存储库来存储一些文档(主要是PDF)。我需要能够上传和下载文件从我的JEE应用程序到Modeshape存储库。我需要在另一个unix机器中设置一个故障转移Modeshape存储库,该存储库可以每晚从主服务器备份。
请您澄清以下设置/实施方向:
- 我需要将Modeshape部署到web服务器(至少jboss 6.1),可能是jboss 7,因为有一个安装程序可用。正确吗?此外,在与部署在jboss EAP 4.0.x上的外部JEE应用程序交互时是否可能出现问题?
- 需要添加二进制存储位置,用于在文件系统中存储文件(不想通过添加DB来复杂化)。标准和组合二进制存储有什么区别吗?
- Inifispan缓存仅用于属性/元数据,二进制存储位置用于持久化文件。正确吗?
- infinispan缓存是否在重启后持久存在,或者应该将这些属性和元数据保存在其他地方? 要从我的JEE web应用程序访问Modeshape存储库,我需要使用webdav api。我将无法使用RestAPI,因为我需要上传/下载PDF文件。这是正确的吗?此外,如果你能提供更多关于webdav api/任何可能的设置步骤的见解,我将不胜感激。
- 我需要每晚将内容复制到备份Modeshape服务器设置。有什么工具可以使用吗?
1 -对不起,我不是JBoss专家,但ModeShape是纯粹的JBoss产品,文档在这方面是全面的。我认为JBoss EAP 7已经很好地定义了这一点。你可以使用WebDav或Rest在JBoss 4上的ModeShape和你的应用程序之间进行通信。在Jboss EAP 4.x中集成。
2 -标准二进制存储允许存储在文件系统中的一个文件上,而组合存储能够聚合几个类型的二进制存储:file, infinispan, database或custom。我认为你只需要标准的二进制存储(org.modeshape.jcr.value.binary.FileSystemBinaryStore)。
3 -是的,这是正确的。元数据和二进制数据在不同的存储区分开。Modeshape使用infinispan将元数据存储在内存中(您可以使用cacheStore持久化它们),但二进制文件在另一个存储中(例如FileSystem)。
4 - Infinispan缓存通过cacheStore(文件系统或JDBC或NoSQL或云)在ModeShape上的每个事务中持久化。如果在ModeShape中创建了一个文件或文件夹,Infinispan会立即通过cacheStore存储这些信息。
5 -上传或下载文件,可以使用WebDav或Rest。Rest也提供uri来上传文件:参见Rest api文档
6 -没有实用程序来管理存储库,但您可以使用程序备份。ModeShape Jira在下一个版本中有一个改进,添加命令行存储库管理工具:MODE-1660