我想从Share webapp中的Java bean访问share-config-custom.xml
数据。
与以下javascript语法(访问配置根对象)相同但在Java上下文中是什么:
config.scoped['RepositoryLibrary']['root-node']
是否将share-config-custom转换为bean本身?或者是否有从Java中读取它的API?
答案 0 :(得分:4)
首先,没有“合理”的方法来使用这个API“查看”一个XML配置文件。通常,ConfigService
创建一个从各种来源合并的配置。但无论如何都不应该直接看XML。
话虽如此,Javascript对象config
实际上是org.springframework.extensions.webscripts.ScriptConfigModel
。
要获得与Java相同的东西,请自己引用ConfigService
。要获取引用,请让spring将其注入自定义bean:
<property name="configService" ref="web.config" />
致电configService.getGlobalConfig()
应该相当于config.scoped
。
答案 1 :(得分:1)
我知道这已经回答了,但安德烈亚斯的回答只让我在那里。配置类实际上是XMLConfigService。
这是一个与Enterprise 4.1配合使用的代码段。* Alfresco:
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注册:
<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>
从那里,您可以在java代码中使用configService来获取配置值。 XMLConfigService位于我的Alfresco版本的spring-surf-core-configservice-1.2.0-SNAPSHOT.jar中。