Таможенный перехватчик не зарегистрирован - PullRequest
0 голосов
/ 13 марта 2020

Все,

Я пытаюсь зарегистрировать пользовательский перехватчик для веб-службы на основе SOAP, используя код, который я вставил ниже.

Я не вижу в мои журналы, любые доказательства, где вызывается любой из этих классов.

Буду признателен за любые идеи о том, как решить эту проблему.

Спасибо, snappersdad

public class InquiryServiceInterceptor extends HandlerInterceptorAdapter {

     private static Logger rollingFileLogger = LogManager.getLogger(InquiryServiceInterceptor.class);

     @Override
     public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {

         rollingFileLogger.debug("Entered preHandle");

         return true;
     }

     @Override
     public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {

         rollingFileLogger.debug("Entered postHandle");
     }

     @Override
     public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception exception) throws Exception {

         rollingFileLogger.debug("Entered afterCompletion");

     }

}

@Component
public class InquiryServiceInterceptorAppConfig extends WebMvcConfigurerAdapter {

    private static Logger rollingFileLogger = LogManager.getLogger(InquiryServiceInterceptorAppConfig.class);

    @Autowired
    InquiryServiceInterceptor inquiryServiceInterceptor;

     @Override
     public void addInterceptors(InterceptorRegistry registry) {

         rollingFileLogger.debug("Adding interceptor 'inquiryServiceInterceptor'...");

         registry.addInterceptor(inquiryServiceInterceptor);

     }

}


1 Ответ

0 голосов
/ 13 марта 2020

Наконец, найдено решение!

1) Добавьте следующее в spring-ws-servlet. xml file

<!-- Intercept all requests -->
<sws:interceptors>
    <bean class="xxx.xxxxxxx.xxx.xxx.InquiryServiceInterceptor"/>
</sws:interceptors>

См .: https://docs.spring.io/autorepo/docs/spring-ws/2.2.0.RELEASE/reference/htmlsingle/ 5.5.2 Перехват запросов - интерфейс EndpointInterceptor для получения более подробной информации

2) Удалить попытку добавить перехватчик через класс Java, (см. Выше) InquiryServiceInterceptorAppConfig расширяет WebMvcConfigurerAdapter

3) Обновить класс перехватчика. Пожалуйста, смотрите новую версию (ПРИМЕЧАНИЕ. Реализация EndpointInterceptor)

public class InquiryServiceInterceptor implements EndpointInterceptor  {

     private static Logger rollingFileLogger = LogManager.getLogger(InquiryServiceInterceptor.class);


     @Override
    public boolean handleRequest(MessageContext messageContext, Object endpoint) throws Exception {

         rollingFileLogger.debug("Entered handleRequest");

         return true;
    }

    @Override
    public boolean handleResponse(MessageContext messageContext, Object endpoint) throws Exception {

        rollingFileLogger.debug("Entered handleResponse");

        return false;
    }

    @Override
    public boolean handleFault(MessageContext messageContext, Object endpoint) throws Exception {

        rollingFileLogger.debug("Entered handleFault");

        return false;
    }

    @Override
    public void afterCompletion(MessageContext messageContext, Object endpoint, Exception ex) throws Exception {

        rollingFileLogger.debug("Entered afterCompletion");

    }

}```
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...