ServletRegistrationBean не работает для нескольких путей сопоставления URL-адресов - PullRequest
2 голосов
/ 29 мая 2020

Я разрабатывал код, глядя на https://howtodoinjava.com/spring-boot/spring-boot-soap-webservice-example/. В приведенном ниже bean-компоненте я хочу разрешить выполнение запроса для /* и /service/*, поэтому я изменил его на

@Bean
public ServletRegistrationBean messageDispatcherServlet(ApplicationContext applicationContext){
    MessageDispatcherServlet servlet = new MessageDispatcherServlet();
    servlet.setApplicationContext(applicationContext);
    servlet.setTransformWsdlLocations(true);
    return new ServletRegistrationBean(servlet, "/service/*");
}

Кому

@Bean
public ServletRegistrationBean messageDispatcherServlet(ApplicationContext applicationContext){
    MessageDispatcherServlet servlet = new MessageDispatcherServlet();
    servlet.setApplicationContext(applicationContext);
    servlet.setTransformWsdlLocations(true);
    return new ServletRegistrationBean(servlet, "/*","/service/*");
}

Приведенная ниже конфигурация не работает, когда мы выполняем URL-адрес /service/*. Как мы можем это исправить?

1 Ответ

0 голосов
/ 12 июня 2020

У меня мэппинг работает. Я загрузил пример и внес изменения в соответствии с вашим вопросом.

Я вижу зарегистрированные сопоставления (журнал) и wsdl (браузер), загруженные, как показано на снимке экрана.

Mapping servlet: 'messageDispatcherServlet' to [/*, /service/*]

Spring Boot Журнал, WSDL Startup log and wsdl Soap Ответ на запрос

Soap Request Response

Не уверен, что у вас не работает. «Приведенная ниже конфигурация не работает, когда мы выполняем / service / * url.»

...