3

カスタム例外を作成し、例外がスローされたときに呼び出される例外マッパーを持っているので、適切な 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);
    }

}

私の例外マッパークラス

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

cxf-config

<jaxrs:server id="serviceId" address="/">
        <jaxrs:providers>
            <bean class="com.package.MyExceptionMapper"/>
        </jaxrs:providers>
</jaxrs:server>

これは基本的に私のコードのようなものですが、この問題を解決するために不足しているものや提供する必要があるその他の情報はありますか?

例外と例外マッパーは 2 つの異なるプロジェクトにありますが、どちらもクラス パスにあるため、問題にはならないと思います。

ありがとう

4

2 に答える 2

5

これが完全な CXF である場合は、実行中のこのサーバーにサービス Bean がありません。

プロバイダーはサービスに関連付けられており、サーバーでも定義されているサービス Bean に対してのみ実行されます。

それ以外はすべて問題ないように見えるので、例外が実際にスローされていることを確認します。

于 2013-04-25T14:57:52.430 に答える