HTTP-запрос из файла JavaScript на открытом воздухе - PullRequest
0 голосов
/ 28 июня 2018

Я новичок на свежем воздухе и создаю правило, которое исполняет файл javascript, когда файл попадает в каталог (мой javascript находится внутри файла сценария словаря данных). Тем не менее, этот сценарий JavaScript должен отправить запрос http получить на удаленный сервер, но я не могу использовать удаленный удаленный доступ. Можете ли вы предложить решение? Спасибо

Мой код 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-запрос от WebScript в Alfresco , но он не работает для меня.

1 Ответ

0 голосов
/ 29 июня 2018

Я не думаю, что было бы полезно улучшить удаленный объект для подключения к вашему внешнему ресурсу.

Самое простое решение - реализовать логику в классе java, а затем представить экземпляр этого класса в качестве корневого объекта в сценарии.

Нетрудно добавить новый объект в контекст javascript. Достаточно определить новый компонент следующим образом:

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

Класс JavascriptRestClient в этом примере должен расширять org.alfresco.repo.processor.BaseProcessorExtension.

С этим определением вы сможете получить доступ к экземпляру класса JavascriptRestClient в javascript, используя переменную restClient.

Родительский компонент 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>
...