我已經創建瞭如下的自定義JacksonJaxbJsonProvider。自定義JacksonJaxbJsonProvider沒有正確拋出異常
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.ext.Provider;
import org.codehaus.jackson.jaxrs.JacksonJaxbJsonProvider;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.map.SerializationConfig.Feature;
import org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion;
import org.codehaus.jackson.map.module.SimpleModule;
@Provider
@Produces(MediaType.APPLICATION_JSON)
public class JacksonJsonProvider extends JacksonJaxbJsonProvider {
public JacksonJsonProvider() {
super();
ObjectMapper mapper = new ObjectMapper();
//mapper.registerModule(new SimpleModule("jacksonJsonModule", null));
mapper.setSerializationInclusion(Inclusion.NON_NULL);
mapper.setSerializationInclusion(Inclusion.NON_DEFAULT);
//mapper.
//mapper.configure(Feature.WRITE_DATES_AS_TIMESTAMPS, false);
mapper.configure(Feature.WRAP_EXCEPTIONS, true);
mapper.configure(org.codehaus.jackson.map.DeserializationConfig.Feature.WRAP_EXCEPTIONS, false);
mapper.configure(org.codehaus.jackson.map.DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
super.setMapper(mapper);
}
}
在我的代碼中,我拋出了帶errorMsg和errorCode的WebApplicationException。
當我使用「org.codehaus.jackson.jaxrs.JacksonJaxbJsonProvider」,並拋出一個WebApplicationException我得到適當的異常反應如下
{
errorMsg: "Invalid input value passed, please correct the value"
errorCode: 400
}
但是,當我在上面提到的使用和JacksonJsonProvider拋出一個異常,我總是得到500內部服務器錯誤。 :(
我錯過了一些配置設置。請幫我搞清楚了這一點。
感謝,
Pratz。
----- -----編輯對不起 爲註釋格式。我在這裏書面方式同樣的事情更好的代碼格式。
在我的資源,其中有@Path註釋,我只是拋出一個異常,它看起來是這樣的
@ GET
@ Path("/{id}")
public User getUser(@ PathParam("id") Long userId) {
try {
userService.getUser(userId);
} catch(Exception e) {
throw new (Response.status(statusCode).entity(new ErrorResource("User not found.", Status.BAD_REQUEST..getStatusCode())).build());
}
}
和哪兒你扔例外? – 2015-02-10 13:25:18
在我的資源中,有@Path註釋,我只是拋出一個異常。它看起來是這樣的 在線'@ GET @Path( 「/(編號)」) 公共用戶的getUser(@PathParam( 「ID」)長期用戶id){ \t嘗試{ \t \t userService.getUser(用戶ID ); ();}();}};}};}};}};}};} \t} }' – Pratz 2015-02-10 16:54:46