2013-01-04 90 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