2017-11-25 14 views
1

camel-jetty 구성 요소를 사용하여 https 소비자 요청을 보내고 그 주소가 JSON 형식의 응답을 반환합니다. 아래에서 내 DSL 코드를 언급합니다.https 요청에 대한 낙타 부두 루트를 정의하고 인증을 위해 매개 변수를 일부 api에 전달하는 방법은 무엇입니까?

from("jetty:https://someSiteAddress.com/api/control/authorizeUser?username=__&password=__").to("stream:out"); 

I am getting this warning: 
[WARNING] 
java.net.SocketException: Permission denied 
at sun.nio.ch.Net.bind0 (Native Method) 
at sun.nio.ch.Net.bind (Net.java:433) 
at sun.nio.ch.Net.bind (Net.java:425) 
at sun.nio.ch.ServerSocketChannelImpl.bind 

하지만 브라우저에서이 HTTP URL을 누를 때마다 인증을 통해 완벽하게 실행됩니다.
누군가가 apache camel에서이 작업을 수행하기 위해해야 ​​할 일을 알고 있다면 저와 다른 사람들에게 매우 기분이 좋을 것입니다.

그리고 POST 나 GET과 같은 요청을 보내는 데 사용하는 낙타 메서드를 어떻게 알 수 있습니까?
고마워요

+0

안녕! 내가 올바르게 이해한다면,이 엔드 포인트를 소비하기를 원합니다 :'https : //someSiteAddress.com/api/control/authorizeUser? username = __ & password = __', 올바르게? 만약 내가 옳다면'to '에'camel-http' 컴포넌트를 사용해야합니다. 귀하의 코드가 묘사 된 방식으로, 당신은 ** URL을 노출하고 소비하지 않습니다. 문제가있는 경우 답장을 보내주십시오. –

+0

@RicardoZanini 도움을 주셔서 감사합니다. 명확하게 지정하겠습니다. 여기서 끝점을 누르기를 원합니다 : from ("위에서 언급") 어떤 token_Id 's를 반환하고이 토큰은 콘솔 ("stream : out")에 인쇄합니다. 하지만 위의 오류가 발생하고 ** 부두 ** 때문에이 오류라고 생각합니다. –

+0

안녕하세요. 제발, 제 대답을보십시오. 부두를 이용하는 방법은이 주소에서 끝점을 노출하는 것입니다 :'https : // someSiteAddress.com'이 그것을 소비하지 않는 것. url에서 소비하려면'to()'를 사용하여 URL을 지정해야합니다. –

답변

1

대신 사용해보세요. 문제를 이해하는 데 도움이되도록 각 행에 주석을 달았습니다.

// endpoint to start your route. could be a http endpoint you expose via jetty, jms, vm, seda or any other option. Here I'm using the simplest one. 
from("direct:start") 
    // logs on 
    .to("log:DEBUG?showBody=true&showHeaders=true") 
    // consume the endpoint 
    .to("https://someSiteAddress.com/api/control/authorizeUser?username=__&password=__"") 
    // log the body to the console so you could process the response later knowing what to do (the token you are mentioning should be in here. 
    .to("log:DEBUG?showBody=true&showHeaders=true") 
    .to("stream:out") //or whatever you want to 

작동이 예를 들어 camel-http 의존성을 잊지 마세요 :

<dependency> 
    <groupId>org.apache.camel</groupId> 
    <artifactId>camel-http</artifactId> 
</dependency> 

건배!

+0

안녕하세요 @RicardoZanini 내 개념을 정리해 주셔서 감사합니다. 코드는 *** Build Success ***입니다. 그러나 응답 (토큰 및 ID 형식)이 아직 나타나지 않습니다. 만약 당신이 내 *** URL 응답에 의심이 생기면 *** 브라우저에서 정상적으로 작동하고 있습니다. –

+0

@RajatTemaniya 브라우저에 표시되는 응답을 게시하십시오. 응답 본문은 응답해야합니다. –

+0

안녕하세요 @RicardoZanini이게 내가 무엇을 찾고 있는지 *** { "organizationPartyId": "MY_COMPANY", "sessionId": "somerandomid.jvm1", "_ LOGIN_PASSED _": "TRUE", "authorizeUserResult": { "userLoginId": " "myuser", "responseMessage": "success", "partyId": "myparty", "token": "mytoken =="}} *** 교환하려고했지만 응답이 없습니다. –

0

이것은 정상적으로 작동합니다.

from("direct:in") 
.to("https://www.someAddress.com/api/control /authorizeUser?username=__ &password=__") 
.to("stream:out"); 

감사 @RicardoZanini