【问题标题】:WSO2 Governance API from WSO2 ESB Mediator来自 WSO2 ESB 中介者的 WSO2 治理 API
【发布时间】:2015-01-13 19:08:43
【问题描述】:

我面向 wso2 ESB 4.8.1 和 WSO2 GREG 4.6.0。 我已将 GREG 连接为 esb 的远程注册表,现在我需要开发一个类调解器,通过它我可以在远程注册表中存储共享资源。

1) Registry 是否可以存储 Java 对象?

2) 我应该使用 org.apache.synapse.registry.Registry 来浏览注册表吗?还是在调解器项目中导入治理api更好?

例如,我需要添加和获取资源并将其设置为我的自定义属性。然后我想读它们。 使用此代码:

    org.apache.axis2.context.MessageContext axis2MsgContext;
    axis2MsgContext =  ((Axis2MessageContext) synapseMsgContext).getAxis2MessageContext();
    Registry regInstance = synapseMsgContext.getConfiguration()
            .getRegistry();


    Object obj = regInstance.getResource(new Entry ("conf:/provaDUE"), null);


    Properties prop  = regInstance.getResourceProperties("conf:/provaDUE");

我无法获取我使用 UI 设置的属性。

谢谢。

【问题讨论】:

    标签: wso2 wso2esb mediator wso2greg


    【解决方案1】:

    这里是您问题的答案。

    1. 目前 Registry 不支持保存 java 对象,但您可以编写一个注册表处理程序 [1],它将 java 实例数据保存在注册表资源中,并在检索对象时从注册表资源中的该数据创建一个 java 对象。您可以使用 java 反射 [2]。

    2. 您应该使用注册表 API 或治理 API,而不是用于突触资源的 org.apache.synapse.registry.Registry。这就是为什么您没有获得您在 UI 中设置的属性的原因。

    这是访问配置注册表中资源属性的示例代码。

    Registry registry = CarbonContext.getThreadLocalCarbonContext(). getRegistry(RegistryType.USER_CONFIGURATION);
    
    Resource resource = registry.get("/provaDUE");
    
    Properties properties = resource.getProperties();
    

    [1]。 https://docs.wso2.com/display/Governance460/Handler+Sample

    [2]。 http://tutorials.jenkov.com/java-reflection/dynamic-class-loading-reloading.html

    [3]。 https://docs.wso2.com/display/Governance460/Registry+API

    [4]。 https://docs.wso2.com/display/Governance460/Governance+API

    【讨论】:

    • 我对您之前的代码很感兴趣。它真的很有用。另一个问题是,如何将资源转换为序列中介?我是否应该获取 ContentStream 并将其解析为 OMElement,最后通过 SequenceMediatorFactory 创建一个序列中介?我该如何更新它?在我之前的经验中,我使用了 synapse api,即 SequenceMediator 和 SequenceMediatorSerializer。我必须使用碳 api 吗?如果是,有什么例子吗? api是什么?
    • 您可以通过 get-property XPath 函数访问。例如,如果您在注册表位置 /_system/governance/A.xml 中有资源 A.xml,那么您可以使用 get-property('gov:/A.xml') 访问它。检查以下代码,我将值加载为类型为 OM 的属性。
    猜你喜欢
    • 1970-01-01
    • 2012-08-31
    • 2012-08-31
    • 1970-01-01
    • 1970-01-01
    • 2012-08-06
    • 2013-06-08
    • 1970-01-01
    • 2012-08-08
    相关资源
    最近更新 更多