2013-01-04 70 views
2

我想在Share webapp中訪問來自Java bean的share-config-custom.xml數據。Alfresco分享:從Java中檢索配置數據

什麼是等同於以下JavaScript語法(該訪問配置根對象),但在Java方面:

config.scoped['RepositoryLibrary']['root-node'] 

是股權分置的配置定製轉換爲bean本身?或者是否有API從Java讀取?

回答

4

首先,沒有「合理」的方式來使用這個API來「查看」一個XML配置文件。通常,ConfigService會創建一個來自各種來源的配置合併。但是直接看XML不應該是需要的。

這就是說,Javascript對象config實際上是一個org.springframework.extensions.webscripts.ScriptConfigModel

要在Java中獲得相同的東西,請自己參考ConfigService。爲了獲得參考,讓春天在自定義的bean注入它:

<property name="configService" ref="web.config" /> 

調用configService.getGlobalConfig()應該讓你的config.scoped相當。

+0

嗨...我想更新現有的配置..我的意思是說,我需要重新加載XML配置服務中已經存在..這是可能的這種方式? – Giri

1

我知道這已經回答了,但是安德烈亞斯的回答只讓我在那裏一半。現在配置類實際上是XMLConfigService。

下面是一個代碼片段,與企業4.1工作*露天:

Java類

import org.springframework.extensions.config.xml.XMLConfigService; 

public class PDFValidate extends BaseJavaDelegate implements ExecutionListener 
{ 
    protected XMLConfigService configService; 

    public void setConfigService(XMLConfigService scriptConfigModel) 
    { 
     this.configService = scriptConfigModel; 
    } 

豆登記:

<bean id="AbstractWorkflowDelegate" parent="baseJavaDelegate" abstract="true" depends-on="activitiBeanRegistry" /> 

<bean id="PDFValidate" parent="AbstractWorkflowDelegate" class="com.epnet.alfresco.metadata.listener.PDFValidate"> 
    <property name="repository" ref="repositoryHelper" /> 
    <property name="configService" ref="web.config" /> 
</bean> 

從那裏,你可以在使用的ConfigService你的java代碼來獲取配置值。 XMLConfigService位於我的Alfresco版本的spring-surf-core-configservice-1.2.0-SNAPSHOT.jar中。

+0

謝謝...所以,現在你能夠以這種方式訪問​​... config.scoped ['RepositoryLibrary'] ['root-node'] – Giri