1

启动服务器时,我的 weblogic 控制台出现以下错误。

严重:在参数索引 0 处缺少构造函数公共 com.test.mine.exception.JsonExceptionMapper(java.lang.String,com.fasterxml.jackson.core.JsonLocation) 的依赖项 严重:缺少构造函数公共 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();   
    }
}

4

2 回答 2

0

我在配置 swagger 以使用 Jersey 时遇到了类似的问题。搜索各种论坛后发现,泽西扫描需要一个不带参数的构造函数。我添加了一个构造函数,它对我有用。

于 2016-03-11T10:59:07.990 回答
0

注释 @Service 告诉 spring 创建一个带注释的类的单例。在启动时 spring 尝试创建该实例并提供所需的构造函数 args String msg, JsonLocation loc 它没有找到,所以异常。

JsonExceptionMapper 看起来不像服务,也不应该是单例。相反,每当创建异常时都必须创建它。我从来没有在那个班上工作过,很抱歉,不能就如何做到这一点给你任何建议。

于 2016-03-04T20:54:05.673 回答