이Mule에서 Java 구성 요소를 찾는 방법은 무엇입니까?
muleContext.getRegistry().lookupObjects(DefaultJavaComponent.class);
을 수행하여 사용자 정의 에이전트
<custom-agent name="my-agent" class="com.monitor.MyAgent"/>
을 등록하는 동안 나는 그것을 얻으려고 한
<flow name="MainFlow2" doc:name="MainFlow2">
...
<component class="com.service.gateway.MyService" doc:name="My Gateway"/>
...
</flow>
이하이 자바처럼 보이는 같은 자바 구성 요소를 감안할 때 구성 요소가 레지스트리에 없으면 가져올 수 없습니다.
은 지금까지 나는
// Get all flows
for (AbstractFlowConstruct flowConstruct : muleContext.getRegistry().lookupObjects(AbstractFlowConstruct.class)) {
if (flowConstruct instanceof AbstractPipeline) {
//get flow's MessageProcessor
List<MessageProcessor> mgs = ((AbstractPipeline) flowConstruct).getMessageProcessors();
for (MessageProcessor messageProcessor : mgs) {
if (messageProcessor instanceof DefaultJavaComponent) {
DefaultJavaComponent javaComp = (DefaultJavaComponent) messageProcessor;
//GOT IT!
}
}
}
}
가 어떻게 직접 모든 Java 구성 요소 프로그래밍 얻을하는 지 알고 있나요이 해결 방법이 있나요?
일부 테스트를 실행했고 모든 구성 요소가 레지스트리에 올바르게 등록되었습니다. 구성 요소가 확장/구현하는 클래스/인터페이스는 무엇입니까? – genjosanzo
@genjosanzo 아니, 그들은 POJO입니다. 어떤 레지스트리에 있습니까? – rodrigoap
그래서 그들은 아마도 DefaultJavaComponent로 등록되지 않을 것입니다. 직접 룩업하려고 했습니까 (예 : muleContext.getRegistry(). lookupObjects (MyService.class))? – genjosanzo