2017-09-04 1 views
1

프록시에서 속성을 만들어야 만 제대로 작동하지만 동일한 프로젝트 내의 다른 프록시에서이 값을 사용해야합니다.wso2의 다른 프록시에있는 프록시에서 속성 값 복구 6.1

<property expression="$ctx:property-name" name="property-name"/> 

을하지만 작동하지 않았다 :

나는 이것을 사용하려고했습니다. 누군가이 값을 얻을 수 있는지 알고 있습니까? 가능한 경우 어떻게해야합니까?

+0

이 속성 값을 설정하는 공유 시퀀스를 생성하고 두 프록시에서 호출. –

+0

나는이 솔루션을 시도했지만 작동하지 않았다. 다른 프록시의 속성을 시도해 볼 때 null 값을 받았다. –

+0

다른 프록시에서 속성을 가져올 수 없습니다. 당신이 할 수있는 것은 같은 값으로 설정됩니다. –

답변

1

이 해결 방법 중 하나가 도움이 될 수 있습니다.

  • 가 매개 변수로 값을 전달하면 (예 : 내부 H2 데이터베이스) 및 액세스 데이터베이스에 값이있어 가능

  • 저장하면 다른 하나의 프록시에서 (예는 HTTP 헤더, 비누 속성을 설정) 그것은 두 번째 프록시에서

0

WSO2 ESB에서 사용할 수있는 클래스 조정자 옵션을 사용하는 것이 좋습니다.

다른 프록시 또는 서비스에서 참조해야하는 속성을이 사용자 지정 중재자에게 전달할 수 있습니다. 우리는 Mediator 또는 AbstractMediator 인터페이스를 구현하여이 사용자 정의 클래스 중재자를 구현할 때

<class name="samples.mediators.SimpleClassMediator"> 
    <property name="variable1" value="10"/> 
    <property name="variable2" value="5"/> 
</class> 

mediate(MessageContext synCtx) 방법을 통해, 우리는 시냅스 메시지 컨텍스트에 대한 액세스 (이 객체의 속성이 같은 모든 매개체로 사용할 수를 얻을 수 서비스).

MessageContext 객체로, 당신은 SynapseConfigurationSynapseEnvironment처럼

는 그래서 중간체의 방법으로, 당신은 SynapseConfiguration 개체에 액세스 할 수있는 다른 글로벌 컨텍스트 개체에 액세스 할 수 있습니다 그 위에 setProperty(String key, String value) 방법을 사용하여 귀하의 재산을 통과하는 다른 서비스 나 API로 액세스해야합니다. 유사한 클래스 조정자를 작성하여 SynapseConfiguration 객체에서 getProperty()을 호출하여이 속성에 액세스합니다.

참고 :

https://docs.wso2.com/display/ESB490/Class+Mediator http://synapse.apache.org/apidocs/org/apache/synapse/config/SynapseConfiguration.html

+0

안녕하세요, 이전 답변에 질문을 게시해서 죄송합니다. 메시지가 중재자에게 도착할 때마다 클래스 중재자가 새로운 객체로 인스턴스화되지 않습니까? 그렇다면 어떻게 한 프록시 서비스에서 다른 프록시 서비스로 상태를 유지할 수 있습니까? –

+0

안녕하세요 @PetteriPertola 클래스 중재자는 클래스의 단일 인스턴스를 인스턴스 것입니다. 요청 수준 동기화가 필요한 경우에도 동일한 수준의 처리가 필요합니다. 또한이 접근법은 유스 케이스를 기반으로 사용해야합니다. 또한 내 생각은 SynapseConfiguration과 같은 전역 컨텍스트 개체에서 속성을 저장하는 것이지 사용자 지정 클래스 조정자 구현에서는 저장하지 않는 것입니다. –

+0

아하, 그건 의미가있다. 내 용도로는 SynapseConfig에 저장할 수 없습니다. 다른 프록시 서비스에서 사용할 수 있다는 점에서 전역 적이 지 않기 때문입니다. 클래스 중재자에 대한 문서는 일반적으로이 부분에서별로 좋지 않습니다. 감사. –

관련 문제