spring integration之http-rest例子解析(四)

2014-11-24 10:09:05 · 作者: · 浏览: 2
lse{
setReturnStatusAndMessage("2", "Employee Not Found", employeeList, responseHeaderMap);
}

}catch (Throwable e){
setReturnStatusAndMessage("1", "System Error", employeeList, responseHeaderMap);
logger.error("System error occured :"+e);
}
Message message = new GenericMessage(employeeList, responseHeaderMap);
return message;
}

/**
* The API setReturnStatusAndMessage() sets the return status and return message
* in the return message payload and its header.
* @param status
* @param message
* @param employeeList
* @param responseHeaderMap
*/
private void setReturnStatusAndMessage(String status,
String message,
EmployeeList employeeList,
Map responseHeaderMap){

employeeList.setReturnStatus(status);
employeeList.setReturnStatusMsg(message);
responseHeaderMap.put("Return-Status", status);
responseHeaderMap.put("Return-Status-Msg", message);
}
}
这些代码就都很简单,一目了然,不用怎么解释了。
其中几个组件关系如下图所示:

运行
run as --> run on server -->选择tomcat运行
用junit运行RestHttpClientTest,就可以得到数据。
[java
final String fullUrl = "http://localhost:8080/rest-http/services/employee/{id}/search";

EmployeeList employeeList = restTemplate.execute(fullUrl, HttpMethod.GET,
new RequestCallback() {
@Override
public void doWithRequest(ClientHttpRequest request) throws IOException {
HttpHeaders headers = getHttpHeadersWithUserCredentials(request);
headers.add("Accept", "application/xml");
}
}, responseExtractor, employeeSearchMap);
[java] view plaincopy
@Test
public void testGetEmployeeAsJson() throws Exception{
Map employeeSearchMap = getEmployeeSearchMap("0");

final String fullUrl = "http://localhost:8080/rest-http/services/employee/{id}/search format=json";
HttpHeaders headers = getHttpHeadersWithUserCredentials(new HttpHeaders());
headers.add("Accept", "application/json");
HttpEntity request = new HttpEntity(headers);

ResponseEntity< > httpResponse = restTemplate.exchange(fullUrl, HttpMethod.GET, request, EmployeeList.class, employeeSearchMap);
logger.info("Return Status :"+httpResponse.getHeaders().get("X-Return-Status"));
logger.info("Return Status Message :"+httpResponse.getHeaders().get("X-Return-Status-Msg"));
assertTrue(httpResponse.getStatusCode().equals(HttpStatus.OK));
jaxbJacksonObjectMapper.writeva lue(System.out, httpResponse.getBody());
}