2013-03-03 22 views
0

我在WSO2文档的任何地方都没有发现任何信息。如何获取WSO2注册表资源的符号链接信息?

我已经从一个呼叫到UserRegistry.get(path)获得的Resource对象,这个资源”的媒体类型(从resource.getMediaType()获得被设置为RegistryConstants.LINK_MEDIA_TYPE,表明它表示在注册表中的符号链接的另一资源。

我想知道这个符号链接所指向的资源的原始媒体类型是什么WSO2 GREG管理界面显然能够做到这一点 - 点击资源上的Info按钮显示我正在寻找的媒体类型 - 但似乎没有提供此信息的API调用。

回答

0

对于你的那一刻的目标使用属性来获取这些属性。 。

registry.get( “路径到符号链接”)的GetProperties()

1)registry.actualpath:返回目标路径

2)registry.targetpoint:返回目标路径

3)registry.link:返回true/false,检查给定路径是否符号链接。

4)registry.author:资源的所有者。

当用户删除目标资源时,治理注册表会自动删除符号链接。 因此断开的链接不存在。

+0

谢谢。我正在使用'registry.getMetaData(“符号链接路径”),并没有返回你提到的属性。更改代码以使用'registry.get(...)'使它工作。 – borice 2013-03-05 01:07:11

+0

顺便说一下,有可能通过使2个符号链接指向相同的资源来获取断开的链接。当您删除资源时,只有一个符号链接被删除。另一个坏了。你不能在UI界面看到这个,但可以通过调用符号链接的父集合的'collection.getChildren()'看到它。 – borice 2013-03-05 01:42:05

+0

在WSO2 JIRA中提交了一个[bug报告](https://wso2.org/jira/browse/REGISTRY-1604)。 – borice 2013-03-05 01:58:05

0

发现如果resource.getMediaType()返回RegistryConstants.LINK_MEDIA_TYPE这意味着这是一个断开的链接,它的目标(它指向的资源)已被删除。

此外,发现,在G-注册所有符号链接信息被存储在以下注册表位置: /_system/local/repository/components/org.wso2.carbon.registry/mount

在该位置中的每个条目表示符号链接,并且可以从获得关于所述符号链接的信息与上述位置中的条目相关联的属性。这些特性包括:

  • author - 谁创建符号链接
  • path用户 - 符号链接的位置
  • target - 符号链接
+0

为了跟进,是否有任何API可以让我获得符号链接信息,而无需手动查找上述位置中的条目并解析属性? – borice 2013-03-04 02:39:48

+0

我发现为什么在某些情况下,'resource.getMediaType()'返回'RegistryConstants.LINK_MEDIA_TYPE',在其他情况下它返回目标的媒体类型:当使用'resource = registry.get(“symlink_path”)'',然后'getMediaType ()'返回目标媒体类型;当使用'resource = registry.getMetaData(“symlink_path”)',那么'getMediaType()'返回'RegistryConstants.LINK_MEDIA_TYPE'的值。区别在于如何获得资源实例。 – borice 2013-03-05 00:42:29

相关问题