2016-03-04 73 views
0

当我启动我的服务器时,我在我的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(); 
    } 
} 

回答

0

注释@Service告诉Spring创建注释类的单一。在启动时,spring会尝试创建该实例,并提供所需的构造函数参数String msg,JsonLocation loc,它找不到,因此是异常。

JsonExceptionMapper不看起来像一个服务,它不应该是一个单身。相反,只要创建异常,就必须创建它。 我从来没有与这个班级合作过,所以很抱歉,不能给你任何建议如何做到这一点。

0

在配置Swagger与Jersey一起工作时,我遇到了类似的问题。搜索各种论坛后发现泽西扫描需要一个不带参数的构造函数。我添加了一个构造函数,它为我工作。