Alfresco中来自WebScript的HTTP请求

时间:2011-09-02 11:19:55

标签: alfresco web-scripting

我正在使用JS控制器在Alfresco编写WebScript,我想向本地HTTP资源发出HTTP请求。该资源是一个基于Java的应用程序,并为我提供了自己的REST API。

我的WebScript不是共享组件:所以我没有remote对象来调用另一个webscript。

如何从WebScript向本地资源(类似'/ sdo / documents / getName?type = fl')发出HTTP请求?

1 个答案:

答案 0 :(得分:5)

编辑:Alfresco正在重写Spring Surf webscripts.container bean删除remote定义(web-scripts-application-context.xml中的remote-api):

<bean id="webscripts.container" class="org.alfresco.repo.web.scripts.RepositoryContainer" parent="webscripts.abstractcontainer">
      <property name="name"><value>Repository</value></property>
      <property name="scriptObjects">
         <map merge="true">
           <entry key="paging">
              <ref bean="webscripts.js.paging"/>
           </entry>
         </map>
<!-- ..... -->
</bean>

我建议您再次将其包含为custom Javascript API根级别对象。


remote根对象来自Spring Surf框架,这意味着无论是针对Alfresco存储库还是共享开发Web脚本,您都拥有它。作为证明,这里是公共Alfresco CMIS服务器中可用的a Web Script的来源( - &gt; Alfresco存储库实例,如果要求您登录,则为admin / admin):

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);

以下代码段取自spring-surf-application-context.xml,位于Alfresco 3.4.0的spring-webscripts-1.0.0.CI-SNAPSHOT.jar内,remote根对象获取其定义:

   <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>