Java 如何在Google Guice中使用Jersey ExceptionMapper?

Java 如何在Google Guice中使用Jersey ExceptionMapper?,java,jersey,guice,Java,Jersey,Guice,我正在使用Jersey Guice,需要配置一个自定义的ExceptionMapper 我的模块如下所示: public final class MyJerseyModule extends JerseyServletModule { @Override protected void configureServlets() { ... filter("/*").through(GuiceContainer.class); ... } }

我正在使用Jersey Guice,需要配置一个自定义的
ExceptionMapper

我的模块如下所示:

public final class MyJerseyModule extends JerseyServletModule
{
   @Override
   protected void configureServlets()
   {
      ...
      filter("/*").through(GuiceContainer.class);
      ...
   }
}
这是我的
例外情况apper

import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
import javax.ws.rs.ext.ExceptionMapper;

public class MyExceptionMapper implements ExceptionMapper<MyException>
{
   @Override
   public Response toResponse(final MyException exception)
   {
      return Response.status(Status.NOT_FOUND).entity(exception.getMessage()).build();
   }
}
导入javax.ws.rs.core.Response;
导入javax.ws.rs.core.Response.Status;
导入javax.ws.rs.ext.ExceptionMapper;
公共类MyExceptionMapper实现ExceptionMapper
{
@凌驾
公众响应(最终MyException异常)
{
返回Response.status(status.NOT_FOUND).entity(exception.getMessage()).build();
}
}

您的ExceptionMapper必须用
@Provider
注释,并且必须是一个单例

import com.google.inject.Singleton;

import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
import javax.ws.rs.ext.ExceptionMapper;
import javax.ws.rs.ext.Provider;

@Provider
@Singleton
public class MyExceptionMapper implements ExceptionMapper<MyException>
{
   @Override
   public Response toResponse(final MyException exception)
   {
      return Response.status(Status.NOT_FOUND).entity(exception.getMessage()).build();
   }
}
如果您想:

public final class MyJerseyModule extends JerseyServletModule
{
   @Override
   protected void configureServlets()
   {
      ...
      filter("/*").through(GuiceContainer.class);
      bind(MyExceptionMapper.class);
      ...
   }
}
public final class MyJerseyModule extends JerseyServletModule
{
   @Override
   protected void configureServlets()
   {
      ...
      filter("/*").through(GuiceContainer.class);
      bind(MyExceptionMapper.class);
      ...
   }
}