我已经创建了如下的自定义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