2017-02-11 11 views
2

내 응용 프로그램에서 사용자가 승인 된 그룹에 속하고 메시지 만 처리하면 webservice.e.g를 호출하여 수신 메시지의 인증을 확인해야합니다. 이를 위해 들어오는 메시지의 속성 중 하나 인 userId (전체 수신 메시지 아님)에서 authorizationRequest를 작성하고 webservice로 보내야합니다.
나는 낙타를 처음 사용합니다. non-camel 애플리케이션에서 이것을 구현하려면 webservice 클라이언트를 만들고 userId (param)를 호출하고 응답을 처리해야합니다. 홈페이지 낙타 경로 : 낙타와Camel의 메시지 유효성 확인을위한 springWs 호출

from(<URI>).routeId("UpdateRoute") 
       .process("AuthorizationProcessor") 
       .process("ValidateProcessor") 
       .choice() 
       .when(matches(cond1)).to("cond1Processor") 
       .when(matches(cond2)).to("cond2UpdateProcessor") 
       .otherwise().to("invalidconditionProcessor"); 

    } 

, 나는 사용자 정의 프로세서 AuthorizationProcessor를 호출하고 내가 아닌 낙타 응용 프로그램에서 할 수있는 등의 웹 서비스 호출을하고있다. 나는 Camel을 적절하게 사용하지 않습니다.
webservice 호출을 작성하는 적절한 방법은 무엇입니까?

나는 경로 AuthorizationRoute를 만들려고 노력했는데 spring ws 구성 요소를 사용하여 call.But을 사용하여이 경로가 호출되는 방법과 요청을 빌드해야하는 위치를 명확히 구분할 수있었습니다.

+0

??? 언더 타우에서 낙타를하고 있어요. Exchange에서 userId라고하는 속성을 설정해야합니다. 이제 비누 요청에서 UserId를 기대하는 작업 validateUserId에 대해 webservice를 호출해야합니다. – noMad17

+0

낙타를 실행하는 REST 또는 SOAP를 배포하려는 웹 서비스의 유형

from(<URI>).routeId("UpdateRoute") .to("cxf:http://address/service?serviceClass=com.MyClass") .process("ValidateProcessor") // process the resoponse here .choice() .when(matches(cond1)).to("cond1Processor") .when(matches(cond2)).to("cond2UpdateProcessor") .otherwise().to("invalidconditionProcessor"); 

답변

0

Camel에는 웹 서비스 호출 (REST 또는 SOAP)을 수행 할 수있는 몇 가지 구성 요소가 있습니다. 가장 인기있는 것들 중 하나는 (당신이 그것을 짐작 camel-cxf이며, WS 통화를 할 아파치 CXF를 사용

가 사용할 수있는 옵션의 무수한이지만, 포함 귀결

:.

<dependency> 
    <groupId>org.apache.camel</groupId> 
    <artifactId>camel-cxf</artifactId> 
    <version>x.x.x</version> 
    <!-- use the same version as your Camel core version --> 
</dependency> 

을 그리고 다음 경로에서 :

당신은 내가 구축하고 SOAP 메시지를 보낼 독립형 또는 아파치 - karaf 같은 컨테이너 내에서
+0

나는이 솔루션이 내가 교환기에있는 요청자를 보내는데 효과가 있다고 생각한다. 나는 새로운 요청을 만들고 필드에서 교환해야하고 webservice로 보내야합니다. –