2016-03-04 74 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一起工作時,我遇到了類似的問題。搜索各種論壇後發現澤西掃描需要一個不帶參數的構造函數。我添加了一個構造函數,它爲我工作。