2011-12-07 3 views
1

한 번의 호출로 CXF 기반 RESTFul 웹 서비스에서 2 또는 여러 응답을 어떻게 다시받을 수 있습니까?단일 통화에 대한 RESTful 웹 서비스의 두 가지 응답

예 :이 http://localhost:8080/report/annual의 경우 2 회의 JSON 응답을 받고 싶습니다. 처음에는 보고서 세부 사항에 대한 정보를 줄 것입니다 & 몇 가지 다른 정보. 두 번째 응답은 JSON이라는 실제 보고서를 제공합니다. 이 2가 비동기로 전달되면 정말 좋을 것입니다.

답변

2

내가 @flesk과 함께 있어요처럼 뭔가를 반환 할 때, 어쨌든하고 싶은 것, 이것은 비동기 메시징 방식의 더 많은 것이다.

첫 번째 호출은 "actualReport"처리에 별도의 스레드/프로세스에서 "actualReport"처리를 시작한 후 "someinfo"를 반환해야합니다. 그런 다음 "actualReport"에 대한 두 번째 호출을 만들고 해당 호출의 제한 시간 값이 보고서 처리가 완료 될 수 있도록 충분히 높게 설정되어 있는지 확인하십시오.

보고서가 완료 될 때까지 멋진 결과를 얻고 두 번째 호출에서 루프를 반복하여 404를 반환 할 수 있습니다.

하나의 RESTful 호출이 아니라 원하는 것을 얻는 방법은 여러 가지가 있습니다.

1

수 없습니다. 왜 당신은 그냥이 정말 REST 방식 아닌,

{"someInfo": {...}, "actualReport": {...}} 
+0

브라우저에서 처음으로 다시 보낼 수있는 "someinfo"를 매우 빠르게 얻을 수 있습니다. 실제 보고서가 준비되면 나중에 보낼 수 있습니다. – user325643

+0

@ user325643 : 여전히 두 가지 요청이 필요합니다. 경로 매개 변수를 기반으로 json을 반환하기 위해 서비스를 많이 다시 작성해야하는 것은 아닙니다. 예 : 'http : // localhost : 8080/report/{period}/{type}'와 같은 것을'report '로 끝내십시오. – flesk

+0

REST를 사용하여이 작업을 수행하려면 두 번의 호출이 필요합니다. 당신이 생각하고있는 일은 자바 스크립트 푸시와 비슷합니다. –

관련 문제