2015-01-13 3 views
1

메신저 최대 wso2 ESB 4.8.1 및 WSO2 GREG 4.6.0. 저는 GREG를 esb의 원격 레지스트리로 연결 했으므로 원격 레지스트리에 공유 된 recources를 저장할 수있는 클래스 조정자를 개발해야합니다.WSO2 거버넌스 API WSO2 ESB 중재자

1) 레지스트리에 Java 객체를 저장할 수 있습니까?

2) 레지스트리를 찾아보기 위해 org.apache.synapse.registry.Registry를 사용해야합니까? 또는 중재자 프로젝트 내부에서 거버넌스 API를 가져 오는 것이 더 낫습니까?

예를 들어 리소스를 추가하고 가져 와서 내 사용자 지정 속성을 설정해야합니다. 그런 다음 나는 그것을 읽고 싶다. 내가 UI를 사용하여 설정 한 속성을 얻을 수

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

: 이 코드를 사용하여.

감사합니다.

답변

1

다음은 질문에 대한 답변입니다.

  1. 현재 레지스트리는 자바 객체를 저장하는 지원하지 않습니다하지만 당신은 레지스트리 자원에 자바 인스턴스 데이터를 저장할 때 개체가 레지스트리 데이터에서 자바 객체를 작성, 검색 [1] 레지스트리 핸들러를 작성할 수 의지. Java Reflection [2]을 사용할 수 있습니다.

  2. 시냅스 리소스를 사용하는 org.apache.synapse.registry.Registry가 아닌 레지스트리 API 또는 관리 API를 사용해야합니다. 그래서 UI에서 설정 한 속성을 얻지 못했습니다.

다음은 구성 레지스트리에있는 자원 등록 정보에 액세스하는 샘플 코드입니다.

레지스트리 레지스트리 = CarbonContext.getThreadLocalCarbonContext(). getRegistry (RegistryType.USER_CONFIGURATION);

리소스 리소스 = registry.get ("/ provaDUE");

속성 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

+0

이전 코드로 관심을 보였습니다. 정말 유용합니다. 또 다른 질문은 어떻게 자원을 서열 매개체로 던질 수 있는가? ContentStream을 가져 와서 OMElement로 구문 분석하고 마지막으로 SequenceMediatorFactory를 사용하여 시퀀스 중개자를 만들면됩니까? 어떻게 업데이트 할 수 있습니까? 이전 경험에서 나는 시냅스 API 즉 SequenceMediator와 SequenceMediatorSerializer를 사용했습니다. 카본 API를 사용합니까? 그렇다면 예제가 있습니까? API는 무엇입니까? – Alex

+1

get-property XPath 함수를 통해 액세스 할 수 있습니다. 예를 들어 레지스트리 위치 /_system/governance/A.xml에 리소스 A.xml이 있으면 get-property ('gov : /A.xml')를 사용하여 액세스 할 수 있습니다. 유형이 OM 인 속성으로 값을로드 한 다음 코드를 확인하십시오. expression = "get-property ('gov : /A.xml')" scope = "default" type = "OM"/> – Eranda