cxf と camel に基づく安らかな Web サービスがあります。私は自分のワークフローに Camel ルーティングを使用しています。これは次のようなものです。
クライアント --> My Rest Service Class --> Camel Custom Processors --> Bean Bar のメソッド Foo
Bean FooBar は、このようなものに見えます..
public class Bar {
public MyObject foo(String request, Exchange exchange){
//do some procesing
return instance of MyObject;
}
問題は、これをテストするたびに、クライアント側で応答コード 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();