如何从Alfresco Share webscript中检索主机名

时间:2012-11-21 10:49:37

标签: share alfresco

我想知道如何从Surf中的根对象知道当前的主机名。

我正在写一个为JNLP提供服务的webscript,所以我没有页面上下文,${url.context}只返回/share

我正在寻找如何拥有主机名http://foobar.com或者是否可以从服务器端获取主机名。

我经历过:http://wiki.alfresco.com/wiki/Surf_Platform_-_Freemarker_Template_and_JavaScript_API#没有成功

2 个答案:

答案 0 :(得分:4)

在存储库方面,已知Alfresco和Share的URL。您可以从SysAdminParams获取所有单独的部分,并且可以使用UrlUtils将不同的部分连接在一起,以便您提供完整的网址。

据我所知,这些细节只在Alfresco存储库层上进行,并且永远不会传递给Share。 Share中的所有绝对URL似乎都在Repo中生成并通过

发送

然后,一个选项是您将webcript更改为repo webscript而不是共享webcript。这将使您可以访问适当的bean。 Share将为您代理Repo网页脚本,因此您仍然可以在登录用户的Share中直接访问它。您需要一个类似/share/proxy/alfresco/my/web/script的网址来访问它们。

否则,创建一个新的repo webscript,公开SysAdminParams和Share URL的有用位,并让你的共享webscript获取它(可能是缓存)。有许多例子也可以使用。

答案 1 :(得分:1)

您是否尝试过${url.serverPath}

否则您可以使用默认的alfresco-global.properties,如

share.context=share
share.host=foobar.com
share.port=80
share.protocol=http

可以在任何地方注入这些属性,请查看此处:Accessing values from Alfresco's alfresco-global.properties file

您唯一需要注意的是,这些属性与存储库相关。 所以你可以写一个repo webscript,它将把所有的道具分享给你。

由于您使用的是Share,因此可以轻松使用客户端JavaScript来确定主机;)。