Alfresco中来自WebScript的HTTP请求
我正在Alfresco中使用JS控制器编写一个WebScript,我想向本地HTTP资源发出HTTP请求。这个资源是一个基于Java的应用程序,它为我提供了自己的RESTAPI 我的WebScript不是共享组件:因此我没有调用另一个WebScript的Alfresco中来自WebScript的HTTP请求,alfresco,web-scripting,Alfresco,Web Scripting,我正在Alfresco中使用JS控制器编写一个WebScript,我想向本地HTTP资源发出HTTP请求。这个资源是一个基于Java的应用程序,它为我提供了自己的RESTAPI 我的WebScript不是共享组件:因此我没有调用另一个WebScript的remote对象 如何从WebScript向本地资源(类似'/sdo/documents/getName?type=fl')发出HTTP请求?编辑:Alfresco正在覆盖Spring SurfWebScript.containerbean,删除
remote
对象
如何从WebScript向本地资源(类似'/sdo/documents/getName?type=fl')发出HTTP请求?编辑:Alfresco正在覆盖Spring Surf
WebScript.container
bean,删除远程定义(在web脚本应用程序上下文.xml
的远程api
):
以下代码段取自Alfresco 3.4.0的spring-webscripts-1.0.0.CI-SNAPSHOT.jar
中的spring-surf应用程序context.xml
,这是远程
根对象获得其定义的地方:
<bean id="webscripts.container" parent="webscripts.abstractcontainer" class="org.springframework.extensions.webscripts.LocalWebScriptRuntimeContainer">
<property name="name"><value>Spring Surf Container</value></property>
<property name="registry" ref="webscripts.registry" />
<property name="searchPath" ref="webframework.webscripts.searchpath" />
<property name="templateProcessorRegistry" ref="webframework.webscripts.registry.templateprocessor" />
<property name="scriptProcessorRegistry" ref="webframework.webscripts.registry.scriptprocessor" />
<property name="scriptParameterFactoryRegistry" ref="webscripts.web.scriptparameterfactoryregistry" />
<property name="configService" ref="web.config" />
<property name="scriptObjects">
<map merge="true">
<entry key="remote" value-ref="webframework.webscripts.scriptremote" />
</map>
</property>
<property name="processorModelHelper" ref="processor.model.helper"/>
<property name="extensibilityModuleHandler" ref="webscripts.extensibility.handler"/>
</bean>
<bean id="webframework.webscripts.scriptremote" class="org.springframework.extensions.webscripts.ScriptRemote">
<property name="configService" ref="web.config"/>
<property name="connectorProvider" ref="webframework.connector.provider"/>
</bean>
弹簧冲浪容器
我尝试在我的WebScript中使用remote
对象:var result=remote.connect(“http”).get(“/t3sdo/enum/get?type=“+field.value”)代码>。但是我有一个错误,“远程”没有定义。怎么了?PS:这不是春季冲浪级别,它只是一个露天的webscript。是Spring Surf的一个模块。您运行的是哪个版本的Alfresco?3.4.0,我说的是带有URL/Alfresco/service/…
,而不是有远程
的冲浪组件的脚本。正如我已经说过的,Web脚本是Spring Surf的一部分。我知道您没有编写Surf组件脚本,但这并不意味着您不在Spring Surf的环境中。我找到了remote
不可用的原因,并更新了答案以描述可能的解决方案。
var serviceUrl = (args.service === null) ? "/api/repository" : args.service;
var conn = remote.connect("alfresco");
var result = conn.get(stringUtils.urlEncodeComponent(serviceUrl));
var service = atom.toService(result.response);
var workspace = service.workspaces.get(0);
model.repo = workspace.getExtension(atom.names.cmisra_repositoryInfo);
<bean id="webscripts.container" parent="webscripts.abstractcontainer" class="org.springframework.extensions.webscripts.LocalWebScriptRuntimeContainer">
<property name="name"><value>Spring Surf Container</value></property>
<property name="registry" ref="webscripts.registry" />
<property name="searchPath" ref="webframework.webscripts.searchpath" />
<property name="templateProcessorRegistry" ref="webframework.webscripts.registry.templateprocessor" />
<property name="scriptProcessorRegistry" ref="webframework.webscripts.registry.scriptprocessor" />
<property name="scriptParameterFactoryRegistry" ref="webscripts.web.scriptparameterfactoryregistry" />
<property name="configService" ref="web.config" />
<property name="scriptObjects">
<map merge="true">
<entry key="remote" value-ref="webframework.webscripts.scriptremote" />
</map>
</property>
<property name="processorModelHelper" ref="processor.model.helper"/>
<property name="extensibilityModuleHandler" ref="webscripts.extensibility.handler"/>
</bean>
<bean id="webframework.webscripts.scriptremote" class="org.springframework.extensions.webscripts.ScriptRemote">
<property name="configService" ref="web.config"/>
<property name="connectorProvider" ref="webframework.connector.provider"/>
</bean>