未调用Cxf异常映射器

use*_*547 3 java spring exception-handling cxf

我创建了一个自定义异常,并且我有一个异常映射器,我想在抛出异常时调用它,这样我就可以返回正确的http返回代码和消息,但由于某种原因它不能用于我的异常.

这是相关的代码

我的异常类:

public class MyException extends ApplicationRuntimeException
{

    private static final long serialVersionUID = 1L;

    public MyException ()
    {
        super();
    }

    public MyException (String message)
    {
        super(message);
    }

    public MyException (String message, ErrorCode errorCode)
    {
        super(message, errorCode);
    }

    public MyException (Throwable t)
    {   
        super(t);
    }

    public MyException (String message, Throwable t)
    {
        super(message, t);
    }

}
Run Code Online (Sandbox Code Playgroud)

我的异常映射器类

@Provider
public class MyExceptionMapper implements ExceptionMapper<Exception>
{
    @Override
    public Response toResponse(Exception exception)
    {
        //code
        return response;
    }
}
Run Code Online (Sandbox Code Playgroud)

CXF-配置

<jaxrs:server id="serviceId" address="/">
        <jaxrs:providers>
            <bean class="com.package.MyExceptionMapper"/>
        </jaxrs:providers>
</jaxrs:server>
Run Code Online (Sandbox Code Playgroud)

这基本上就是我的代码,我有什么遗漏或者我需要提供的任何其他信息才能解决这个问题?

异常映射器和异常映射器位于两个不同的项目中,但我认为这并不重要,因为它们都在类路径中.

谢谢

fpm*_*les 5

如果这是您的完整CXF,则缺少正在执行的服务器中的服务bean.

提供程序与服务绑定,仅对服务器中定义的服务bean执行.

除此之外,一切看起来都很好,所以我会检查并确保您的异常真的被抛出.