处理CXF JAX-RS客户端中的异常

时间:2012-02-14 16:42:28

标签: exception-handling cxf jax-rs

我想在我的CXF rest客户端中将HTTP状态代码转换为Java Exceptions。根据{{​​3}}我需要使用ResponseExceptionMapper,但是没有任何例子可以使它工作。我的理解是我需要将其注册为提供者,但是如何使用代理类型的客户端呢?我尝试了以下代码

//create a proxy client     
locationService = JAXRSClientFactory.create(applicationURI + "/rest/", LocationService.class);

//registering my ResponseExceptionMapper
ProviderFactory.getSharedInstance().registerUserProvider(LocationResponseExceptionMapper.getInstance());

但它不起作用,因为ProviderFactory.getSharedInstance()返回一个不同的ProviderFactory实例,然后是我的客户端使用的实例。

1 个答案:

答案 0 :(得分:1)

使用this signature向代理工厂提供例外映射器:

//create a proxy client with specified exception mapping provider
List<Object> providers = new ArrayList<Object>();
providers.add(LocationResponseExceptionMapper.getInstance());
locationService = JAXRSClientFactory.create(applicationURI + "/rest/", LocationService.class, providers);