如何从Share in Java中调用Alfresco(存储库)webscript

时间:2014-10-09 09:23:12

标签: java web-services alfresco alfresco-share

我知道我可能会因为这个微不足道的问题而被投票......

在Javascript中很容易(甚至是神奇的):remote.call("/api/...")

我如何用Java获得这个?

我阅读了许多帖子,例如this one,其中Alfresco(存储库)网址是硬编码的http://localhost:8080/alfresco,未定义(例如:REPO_WEB_SERVICE_URL)。

是否有帮助程序可以提供存储库的URL?是否有一个类与remote Javascript根对象相同?

我很抱歉,如果答案很明显,我就是看不到它,我已经找了好几个小时了,我开始疯狂了,因为它应该是一个不用脑子的......

2 个答案:

答案 0 :(得分:5)

为了使您的共享脚本中的远程可用,您需要使用Spring注入远程。

设置上下文文件以设置远程变量:

<bean id="MyEvaluator" class="org.me.MyEvaluator">
    <property name="remote" ref="webframework.webscripts.scriptremote" />
</bean>

然后,您需要在Java类中创建变量。鉴于您可以随意使用它:

public class MyEvaluator extends BaseEvaluator {

    private ScriptRemote remote;

    public void setRemote(ScriptRemote remote) {
        this.remote = remote;
    }

    public void doScriptCall() {
        Response response = remote.call("/api/...");
    }

}

答案 1 :(得分:1)

部分答案,以获得Alfresco Repository基本路径。

connectorService注入bean:

<bean id="MyEvaluator" class="org.me.MyEvaluator">
    <property name="connectorService" ref="connector.service" />
</bean>

然后在课堂上,检索Alfresco终点:

String alfrescoEndPoint = connectorService.getConnector("alfresco").getEndpoint();
根据{{​​1}}中的设置,

alfrescoEndPoint将类似于http://host:port/alfresco/s