【问题标题】:HTTP request from alfresco javascript file来自 alfresco javascript 文件的 HTTP 请求
【发布时间】:2018-06-28 13:03:32
【问题描述】:

我是 alfresco 的新手,我创建了一个规则,当文件到达目录时执行 javascript 文件(我的 javascript 在数据字典脚本文件中)。 但是,这个 javascript 脚本必须向远程服务器发送一个 http get 请求,但我不能使用 alfresco 远程。你能提出一个解决方案吗? 谢谢

我的 javascript 代码:

function main() {
    var name = document.name;
    var username = "";
    var msgContent = "";
    var siteName = document.siteShortName;
    var firstName = person.properties.firstName;
    var lastName = person.properties.lastName;

    if (siteName == null) {
        if (logger.isLoggingEnabled())
            logger.log("Erreur");

        return;
    }
    if (firstName != null) {
        username = username + firstName + " ";
    }
    if (lastName != null) {
        username = username + lastName;
    }
    msgContent = username + " a ajouté un nouvel élément de contenu " + name + " au site " + siteName;

    if (logger.isLoggingEnabled()) {
        logger.log(encodeURIComponent(msgContent));
    }
    var connector = remote.connect("gedrepportremote");
    var result = connector.get("/api/sendSMS?siteName=" + encodeURIComponent(siteName) + "&msgContent="+encodeURIComponent(msgContent));
    if (result.status == 200) {
        return JSON.parse(result);
    } else if (result.status == 403) {
        
    } else {
        return null;
    }
}

main();
我有这个错误:“未定义远程”。 我试过这个HTTP Request from WebScript in Alfresco,但它对我不起作用。

【问题讨论】:

  • 您能进一步解释一下吗?您尝试发送什么请求,什么还没有工作?
  • @NicoHaase 是否需要从 alfresco 后端 javascript 代码调用 rest API?

标签: javascript alfresco alfresco-share alfresco-webscripts


【解决方案1】:

我不认为增强远程对象以连接到您的外部资源会有用。

最简单的解决方案是在 java 类中实现逻辑,然后在脚本中将该类的实例作为根对象公开。

在 javascript 上下文中添加新对象并不难。像下面这样定义一个新的 bean 就足够了:

<bean id="javascriptRestClient" parent="baseJavaScriptExtension"
    class="com.example.javascript.JavascriptRestClient">
    <property name="extensionName" value="restClient" />
</bean>

本例中的 JavascriptRestClient 类必须扩展 org.alfresco.repo.processor.BaseProcessorExtension。

通过此定义,您将能够使用变量 restClient 在 javascript 中访问 JavascriptRestClient 类的实例。

父 bean baseJavaScriptExtension 在 alfresco 上下文文件 alfresco/script-services-context.xml 中定义为:

<!-- base config implementation that script extension beans extend from - for auto registration
     as a global script with the ScriptService -->
<bean id="baseJavaScriptExtension" abstract="true" init-method="register">
    <property name="processor">
        <ref bean="javaScriptProcessor"/>
    </property>
</bean>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-20
    • 2014-08-08
    • 2010-09-30
    • 1970-01-01
    • 2014-05-06
    • 2012-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多