весна - имя провайдера, зарегистрированное во время выполнения SERVER, не реализует интерфейсы провайдера - PullRequest
0 голосов
/ 30 октября 2018

Я разрабатываю загрузку Spring с Jersy и получаю следующую ошибку при добавлении фильтра в запрос на отключение CORS:

A provider ...CorsFilter registered in SERVER runtime does not implement any provider interfaces applicable in the SERVER runtime. Due to constraint configuration problems the provider ...CorsFilter will be ignored.

Этот класс является следующим:

@Component
public final class CorsFilter implements Filter {

    private static final Logger logger = LoggerFactory.getLogger(CorsFilter.class);

    public CorsFilter() {
        logger.info("SimpleCORSFilter init");
    }

    @Override
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
        HttpServletResponse response = (HttpServletResponse) res;

        response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Access-Control-Allow-Credentials", "true");
        response.setHeader("Access-Control-Allow-Methods", "POST, PUT, GET, OPTIONS, DELETE, PATCH");
        response.setHeader("Access-Control-Max-Age", "3600");
        response.setHeader("Access-Control-Allow-Headers", "Content-Type, Accept, X-Requested-With, remember-me, Origin, Authorization");

        chain.doFilter(req, res);
    }

    @Override
    public void init(FilterConfig filterConfig) {
    }

    @Override
    public void destroy() {
    }

}

И моя конфигурация ресурса следующая:

@Bean
    public ResourceConfig jerseyConfig() {
        final ResourceConfig resourceConfig = new ResourceConfig();
        ...
        resourceConfig.register(CorsFilter.class);
        ...

        return resourceConfig;
    }

Сначала я думал, что это работает отлично, потому что я никогда не замечал это предупреждение, но теперь, когда я пытаюсь выполнить запрос PATCH со своего Angular, я получаю эту ошибку, которая, я подозреваю, связана с этим предупреждением. на стороне сервера:

Method PATCH is not allowed by Access-Control-Allow-Methods in preflight response

Я видел вопросы, задающие то же самое, но это не решено, и мне нужно, чтобы это работало. Пожалуйста, помогите.

Спасибо.

...