2014-10-09 44 views
2

我知道我可能會向下投票支持這個簡單的問題...如何調用露天(庫)webscript從分享中的Java

在Javascript中很容易(甚至是不可思議的):remote.call("/api/...")

如何我在Java中得到這個嗎?

我讀了很多帖子,如this one,其中Alfresco(存儲庫)URL是硬編碼http://localhost:8080/alfresco,或者未定義(例如:REPO_WEB_SERVICE_URL)。

是否有助手可以提供存儲庫的URL?是否有一個類與JavaScript根對象remote一樣?

對不起,如果答案很明顯,我只是看不到它,我正在尋找幾個小時了,我開始爲它瘋狂起來,因爲它應該是一件容易的事情...

+0

好的我很愚蠢,REPO_WEB_SERVICE_URL可能不是Alfresco存儲庫的絕對URL,但是是一個相對的...我會測試這個片段,我會回答我自己的問題,如果我得到它的權利... – boumbh 2014-10-09 09:27:02

回答

5

爲了使您的共享腳本中的遙控器可用,您需要使用Spring注入遙控器。

設置上下文文件來設置遠程變量:

<bean id="MyEvaluator" class="org.me.MyEvaluator"> 
    <property name="remote" ref="webframework.webscripts.scriptremote" /> 
</bean> 

然後,你需要在你的Java類來創建變量。鑑於你可以使用它,只要你喜歡:

public class MyEvaluator extends BaseEvaluator { 

    private ScriptRemote remote; 

    public void setRemote(ScriptRemote remote) { 
     this.remote = remote; 
    } 

    public void doScriptCall() { 
     Response response = remote.call("/api/..."); 
    } 

} 
+0

謝謝,我可以注入'ScriptRemote'類,它回答了我的問題,但我最終採取了另一種方式,因爲我不喜歡在我的Java類上使用'ScriptXXX'方法(我不知道是否是我的)。我錯過了版本庫網址,並設法通過搜索源代碼來獲取它。 – boumbh 2014-10-10 16:11:55

1

部分答案,以獲得Alfresco存儲庫的基本路徑。

注入connectorService到bean:

<bean id="MyEvaluator" class="org.me.MyEvaluator"> 
    <property name="connectorService" ref="connector.service" /> 
</bean> 

然後在類,檢索露天端點:

String alfrescoEndPoint = connectorService.getConnector("alfresco").getEndpoint(); 

alfrescoEndPoint將根據什麼在alfresco-global.properties設置類似http://host:port/alfresco/s