У меня есть спокойный веб-сервис, основанный на cxf и верблюде. Я использую маршрутизации Camel для моей работы это что-то вроде этого ..Apache Camel и CXF: Как отправить код статуса HTTP из bean
Клиент -> Мой отдых класса обслуживания -> Camel Пользовательские процессоры -> некоторый метод Foo Бина Bar
боба FOOBAR выглядит как-то это ..
public class Bar {
public MyObject foo(String request, Exchange exchange){
//do some procesing
return instance of MyObject;
}
Теперь проблема заключается в том, что всякий раз, когда я проверить это я получаю respone код 200 на стороне клиента. Теперь, если я хочу, чтобы этот код был чем-то иным, чем 200, мне нужно установить его в HttpServletResponse
или другом объекте javax.ws.rs.core.Response
, но как я могу получить доступ к этому объекту ответа.
Я пробовал следующее, но это не решило мою проблему.
exchange.getOut().setHeader(Exchange.HTTP_RESPONSE_CODE, 202);
exchange.getIn().setHeader(Exchange.HTTP_RESPONSE_CODE, 202);
exchange.setProperty(Exchange.HTTP_RESPONSE_CODE, 202);
Response.status(202).build();