WSO2 ESB介体的WSO2治理API [英] WSO2 Governance API from WSO2 ESB Mediator

查看:130
本文介绍了WSO2 ESB介体的WSO2治理API的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

1)注册表可以存储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设置的属性.

谢谢.

解决方案

这是您问题的答案.

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

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

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

注册表注册表= CarbonContext.getThreadLocalCarbonContext(). getRegistry(RegistryType.USER_CONFIGURATION);

资源= registry.get("/provaDUE");

属性属性= 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

im facing up to wso2 ESB 4.8.1 and WSO2 GREG 4.6.0. I have connected GREG as esb's remote Registry and now i need to develop a class mediator by which i can store shared recources inside the remote registry.

1) Does the Registry can store Java Object?

2) should i use org.apache.synapse.registry.Registry for browing the registry? or is it better to import the governance api inside the mediator project?

For example i need to add and get a resource and to set it my custom properties. Then i want to read them. Using this code:

    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");

I cannot get the properties i set using UI.

Thanks.

解决方案

Here's the answers for your questions.

  1. Currently Registry does not support saving java objects but you can write a registry handler [1] which save the java instance data in a registry resource and when retrieve the object create a java object out of that data in registry resource. You may use java Reflection [2].

  2. You should use registry API or governance API, not org.apache.synapse.registry.Registry which uses for synapse resources. That is why you didn't get the properties which you set in the UI.

Here is an sample code to access resource properties which are in config registry.

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

这篇关于WSO2 ESB介体的WSO2治理API的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆