2015-01-12 17 views
7

Chciałbym połączyć dwie sprężyny (wiosna-boot) wnioski z prowadnicami wiosny:Wiosna Boot SOAP usługa z MVC

Niestety, te przykłady nie działają razem. Wystąpił problem z dyspozytorem serwletów. Po dodaniu komponentu dispatcherServlet - serwlet MVC nie działa (Błąd 404).

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

Jak skonfigurować dyspozytarkę serwletów do poprawnego działania?

chciałbym posiadać:

  • localhost:8080/ws/* - usługa
  • localhost:8080/web/* - MVC komponenty

Dzięki z góry!

+3

zmienić nazwę metody na 'messageDispatcherServlet' zamiast" dispatcherServlet ", która zastępuje domyślnie skonfigurowaną' DispatcherServlet'. –

+0

Dziękuję bardzo !!! To działa – jareks

Odpowiedz

8

Problem polega na rejestracji MessageDispatcherServlet ze względu na nazwę dispatcherServlet, która zastępuje funkcję Spring Boot zarejestrowanego DispatcherServlet. Ta ostatnia jest potrzebna dla części MVC twojej witryny.

Aby to naprawić, zmień nazwę metody na inną niż dispatcherServlet, powiedz: messageDispatcherServlet.

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