【问题标题】:How to call Alfresco (repository) webscript from Share in Java如何从 Java 中的 Share 调用 Alfresco(存储库)webscript
【发布时间】:2014-10-09 09:23:12
【问题描述】:

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

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

我如何在 Java 中得到这个?

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

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

如果答案很明显,我很抱歉,我只是看不到它,我已经搜索了几个小时,我开始为它发疯了,因为它应该是不费吹灰之力的......

【问题讨论】:

  • 好吧,我很愚蠢,REPO_WEB_SERVICE_URL 可能不是 Alfresco 存储库的绝对 url,而是一个相对的……我会测试这个 sn-p,如果我得到它,我会回答我自己的问题对...

标签: java web-services alfresco alfresco-share


【解决方案1】:

为了使远程在您的共享脚本中可用,您需要使用 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/...");
    }

}

【讨论】:

  • 谢谢,我可以注入 ScriptRemote 类,它回答了我的问题,但我最终采用了另一种方式,因为我不喜欢在我的 Java 类中使用 ScriptXXX 方法(我不不知道我的)。我错过了存储库 url,我设法通过在源中搜索得到它。
【解决方案2】:

部分回答,以获取 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();

根据alfresco-global.properties 中的设置,alfrescoEndPoint 将类似于http://host:port/alfresco/s

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多