2016-08-21 2 views
-2

Ich versuche, eine Methode zu erstellen, die einen obligatorischen Parameter erhält. Ich bin es auf diese Weise tun:Jersey Ausnahme ist nicht klar

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

Wenn ich versuche, eine GET-Anforderung ohne Parameter zu senden, erhalte ich wieder die folgende HTML-Seite:

<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> 

Gibt es eine Möglichkeit zu steuern, was ich als Ergebnis eines Null-Objekts zurücksende? Der Fehler 404 ist nicht klar genug, um zu wissen, dass ein NULL-Parameter dieses Problem verursacht hat. Gibt es auch eine Möglichkeit, eine einfache Zeichenfolge anstelle einer HTML-Seite zurück zu senden?

Antwort

0

Was ich schließlich tat, war die Suche nach einer Möglichkeit, bei einem Fehler automatisch eine Ausnahme zu erstellen. Also habe ich einen ExceptionMapper verwendet, der eine Antwort mit der Ausnahmemeldung erstellt:

@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(); 
    } 
}