泽西的例外情况尚不清楚

时间:2016-08-21 07:56:49

标签: java jersey jax-rs

我正在尝试创建一个获取必需参数的方法。我是这样做的:

@Path("/insertPerson")
@GET
@UnitOfWork
public short insertPerson(@NotNull @QueryParam("person") Person per)
{ ... }

当我尝试发送没有参数的GET请求时,我收到以下HTML页面:

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <title>Error 404 Not Found</title>
</head>
<body>
    <h2>HTTP ERROR 404</h2>
    <p>Problem accessing /person/insertPerson/. Reason:

        <pre>    Not Found</pre>
    </p>
    <hr>
    <i>
        <small>Powered by Jetty://</small>
    </i>
    <hr/>
</body>

有没有办法控制我因空对象而发回的内容?错误404不够清楚,知道null参数导致了此问题。还有一种方法可以发回一个简单的字符串而不是HTML页面吗?

1 个答案:

答案 0 :(得分:0)

我最终做的是搜索一种在出错时自动创建异常的方法。所以我使用了一个ExceptionMapper,它将使用异常消息创建响应:

@Provider
public class CustomExceptionMapper implements ExceptionMapper<Exception>
{
    @Override
    public Response toResponse(Exception exception) 
    {
        String error = exception.getMessage();
        return Response.status(Status.BAD_REQUEST).entity(error).type("text/plain").build();  
    }
}