【发布时间】:2018-10-23 21:20:04
【问题描述】:
我正在使用带有弹簧靴的球衣,并且我有一个异常映射器:
package org.smarter.providers;
import com.google.common.collect.ImmutableMap;
import org.smarter.exception.ApiException;
import javax.ws.rs.core.Response;
import javax.ws.rs.ext.Provider;
import java.util.Optional;
import static org.smarter.exception.UserException.UNAUTHORIZED;
@Provider
public class ExceptionMapper implements javax.ws.rs.ext.ExceptionMapper<ApiException> {
@Override
public Response toResponse(ApiException exception) {
return Response.status(status(exception)).build();
}
private Integer status(ApiException exception) {
return Optional.ofNullable(ImmutableMap.<String, Integer>builder()
.put(UNAUTHORIZED, 401)
.build()
.get(exception.code()))
.orElse(404);
}
}
也注册了,使用调试,我可以看到这个映射器被正确调用,但是最终响应仍然返回 404,无论使用 junit 测试还是手动测试。
这是测试:
when()
.get("/users/current/memos/daily")
.then()
.statusCode(401);
然后在 Jersey 配置中注册:
register(ExceptionMapper.class);
我正在使用带有弹簧靴的运动衫,不知道如何解决这个问题。任何建议将被认真考虑。
【问题讨论】:
-
@user7294900,我已经按照帖子的建议注册了,谢谢。
标签: java spring-boot jersey jax-rs