1

CXF (2.6.1) に ExceptionMapper を追加したいと思います。これは、応答コードを通信するだけでなく、例外をペイロード形式で送信します (現在は JSON を使用しています)。

@Provider
public class CustomExceptionMapper
        implements
            ExceptionMapper<MyException>
{
...
@Override
public Response toResponse(MyException mex)
{
//I need something here which can convert mex object to JSON and ship it in response
// I want this to be de-serialized on client

//the following returns the status code
return Response.status(Response.Status.BAD_REQUEST).build();
}
...
}

これを行う方法はありますか?

4

1 に答える 1

1

@Produces を使用して、次のようにオブジェクトを JSON にシリアル化する必要がある場合があります。

@Produces(MediaType.APPLICATION_JSON)

その後return Response.ok().entity(OBJECT).build();

サービスをテストする方法:

ClientConfig config = new DefaultClientConfig();
Client client = Client.create(config);
WebResource service = client.resource(getBaseURI());
ClientResponse response = service.path(ADDRESS).type("application/json").get(ClientResponse.class);
String s = response.getEntity(String.class);
System.out.println(s); 

private static URI getBaseURI() {
        return UriBuilder.fromUri(SERVER ADDRESS).build();
}
于 2012-07-27T16:28:45.313 に答える