我使用带有spring boot的jersey,我有一个异常映射器:
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);
}
}
同样注册,并使用调试,我可以看到这个映射器被正确调用,但是无论使用junit测试还是手动测试,最终响应仍然返回404。
以下是测试:
when()
.get("/users/current/memos/daily")
.then()
.statusCode(401);
然后在泽西岛配置中注册:
寄存器(ExceptionMapper.class)
我正在使用带有Spring靴的球衣,不知道如何解决这个问题。任何建议都将不胜感激。
我可以看到这个映射器被正确调用,但最终响应仍然返回404
。
这可能是您的status()
方法实现的问题。您确定<code>异常。code()返回401
?
顺便问一下,您是否需要使用<code>可选
private Integer status(ApiException exception) {
if (exception.code() == 401) {
return exception.code();
} else {
return 404;
}
}
我将javax和jersey用于我的api应用程序(公开apiendpoint),我试图通过提供一个实现ExceptionMapper的提供者来捕获来自fasterXml的异常(在put和post调用时)。 我的问题是,在POST或PUT上,每当我发送错误的属性名称时,有时我的映射器会捕获异常,有时则不会。例如: > 运行我的应用程序一次- 再次运行我的应用程序(重启)- 我正在使用球衣2。x、
我无法上传新泽西州的文件。使用泽西1.9。InputStream到达服务时为空。我尝试过将其作为普通表单提交和使用jQuery表单插件的AJAX提交,但结果都是一样的。也没有记录任何异常,这让它更加令人沮丧。 HTML表单 聚甲醛 Eclipse中的依赖层次结构显示mimepull.jar1.6也被引入。 剩下的服务 如果我添加@FormDataParam(“fileupload_name”)Fo
我是新来的泽西框架。只是想知道使用异常映射器的优势是什么。如果我想把任何错误抛给其他消费者,我可以在方法中执行以下操作,Response.status(502)。实体(“注册期间服务器错误”)。build();为什么建议使用异常映射器,请帮助我理解?
错误: 找不到媒体type=application/xml、type=class com.example.DemoRest2.Employee、genericType=class com.example.DemoRest2.Empayee的MessageBodyWriter。 我想返回Employee的对象。类,但获取上述错误。我正在使用@XmlRootElement注释。然而,当我以字符串格式返
编辑:这是ackson jaxrs-base早期版本中的一个问题,已在jackson-jaxrs-base-2.8中解决。https://github.com/FasterXML/jackson-jaxrs-providers/issues/22 我正在努力解决这个问题,只有mapper例外。我想映射com的所有子级。fasterxml。杰克逊。果心JsonProcessingException在
我正在尝试使用JAX-RS(Jersey)构建JSON RESTful Webservice。我也在使用Maven构建应用程序。 我的第一个方法是 pom之后。xml- 所以我补充道 到我的pom文件。其他lib文件(例如jackson-cors-asl-1.7.1.jar、jackson-jaxrs-1.7.1.jar、jaxb impl,…)也可以在生成的war文件中找到//编辑:它还下载st