我是户外的新手,我创建了一个规则,当文件到达目录时(我的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();
答案 0 :(得分: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类的实例。
在alfresco上下文文件alfresco / script-services-context.xml中,将父bean baseJavaScriptExtension定义为:
<!-- 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>