簡體   English   中英

Spring JsonExceptionMapper ExceptionMapper處理。

[英]Spring JsonExceptionMapper ExceptionMapper handling.

啟動服務器時,在weblogic控制台中出現以下錯誤。

嚴重:缺少參數索引0的構造函數public com.test.mine.exception.JsonExceptionMapper(java.lang.String,com.fasterxml.jackson.core.JsonLocation)的依賴性嚴重:缺少構造函數public com.test.mine的依賴性。參數索引1處的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嘗試創建該實例並提供所需的構造函數args String msg,它找不到的JsonLocation loc,因此是異常。

JsonExceptionMapper看起來不像服務,並且不應是單例。 相反,無論何時創建異常,都必須創建它。 我從來沒有在那堂課上工作過,很抱歉,不能為您提供任何建議。

在配置swagger以與Jersey合作時,我遇到了類似的問題。 在搜索各種論壇后發現,Jersey掃描需要沒有參數的構造函數。 我添加了一個構造函數,它對我有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM