Spring JsonExceptionMapper ExceptionMapper处理。
问题描述:
当我启动我的服务器时,我在我的weblogic控制台中出现以下错误。Spring JsonExceptionMapper ExceptionMapper处理。
重度:在参数索引缺少依赖于构造 公共com.test.mine.exception.JsonExceptionMapper(java.lang.String中,com.fasterxml.jackson.core.JsonLocation)0 严重:缺少依赖于在参数指标1
构造公共com.test.mine.exception.JsonExceptionMapper(java.lang.String中,com.fasterxml.jackson.core.JsonLocation)下面是我的Java代码。
package com.test.mine.exception;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
import javax.ws.rs.ext.ExceptionMapper;
import javax.ws.rs.ext.Provider;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import com.fasterxml.jackson.core.JsonLocation;
import com.fasterxml.jackson.core.JsonParseException;
@Provider
@Service
public class JsonExceptionMapper extends JsonParseException implements ExceptionMapper {
public JsonExceptionMapper(String msg, JsonLocation loc) {
super(msg, loc);
// TODO Auto-generated constructor stub
}
private static final Logger LOGGER = LoggerFactory.getLogger(JsonExceptionMapper.class);
protected Logger getLogger() {
return LOGGER;
}
public Status getStatus(JsonParseException thr) {
return Status.BAD_REQUEST;
}
@Override
public Response toResponse(Throwable arg0) {
// TODO Auto-generated method stub
return Response.status(Status.BAD_REQUEST).type(MediaType.APPLICATION_JSON_TYPE).build();
}
}
答
注释@Service告诉Spring创建注释类的单一。在启动时,spring会尝试创建该实例,并提供所需的构造函数参数String msg,JsonLocation loc,它找不到,因此是异常。
JsonExceptionMapper不看起来像一个服务,它不应该是一个单身。相反,只要创建异常,就必须创建它。 我从来没有与这个班级合作过,所以很抱歉,不能给你任何建议如何做到这一点。
答
在配置Swagger与Jersey一起工作时,我遇到了类似的问题。搜索各种论坛后发现泽西扫描需要一个不带参数的构造函数。我添加了一个构造函数,它为我工作。