2015-01-12 19 views
7

würde Ich mag zwei Frühling kombinieren (Feder-Boot) Anwendungen von Federführung:Frühlings-Boot-SOAP-Webservice mit MVC

Leider sind diese Beispiele nicht funktionieren zusammen. Es gibt ein Problem mit dem Servlet-Dispatcher. Nach dem Hinzufügen DispatcherServlet Bean - MVC-Servlet funktioniert nicht (Fehler 404).

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

Wie konfigurieren Sie Servlet Dispatcher ordnungsgemäß zu funktionieren?

würde ich gerne haben:

  • localhost:8080/ws/* - webservice
  • localhost:8080/web/* - MVC Komponenten

Vielen Dank im Voraus!

+3

Benennen Sie die Methode in 'messageDispatcherServlet' anstatt' dispatcherServlet' um, die letztere überschreibt das standardmäßig konfigurierte 'DispatcherServlet'. –

+0

Vielen Dank !!! Es funktioniert – jareks

Antwort

8

Das Problem liegt in der Registrierung der MessageDispatcherServlet aufgrund des Namens dispatcherServlet es überschreibt die durch Spring Boot registriert DispatcherServlet. Letzteres wird für den MVC-Teil Ihrer Website benötigt.

Um es zu beheben benennen Sie einfach Ihre Methode auf alles außer dispatcherServlet sagen messageDispatcherServlet.

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