Ich habe Probleme beim Ausführen meiner SpringMVC-App mit SpringBoot. Die Anwendung kann den zugeordneten Controller aufrufen und die Sicht erfolgreich auflösen, ist jedoch nicht in der Lage, den statischen Inhalt aufzulösen.Spring Boot-Dispatcher Servlet kann statische Inhalte nicht finden/zuordnen
Ich habe, dass der Frühling lesen Boot automatisch die folgenden Ordner für statische Ressource sieht: - static
, public
Web_INF/resources
etc.
Ich habe meine Dateien auf folgenden Orten versucht, halten aber immer noch nicht helfen.
Meine Ausgabe auf Konsole ist:
Innen-Controller 2016.08.23 17: 22: 12.002 [http-nio-9990-exec-1] [org.springframework.web.servlet.PageNotFoundn ] [Warnen] org.springframework.web.servlet.PageNotFound: {} - Keine Zuordnung für HTTP-Anforderung mit URI [/springBootApp/templates/hello.html] in DispatcherServlet mit dem Namen 'DispatcherServlet'
wo ist SpringBootApp mein Kontextstamm
Hier sind meine Klassen: - SpringBoot Klasse: -
@SpringBootApplication
public class ServiceApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication app = new SpringApplication(ServiceApplication.class);
Set<ApplicationContextInitializer<?>> initLst = app.getInitializers();
initLst.add(new PropertyPasswordDecodingContextInitializer());
app.setInitializers(initLst);
ApplicationContext ctx = app.run(args);
System.out.println("Services Started");
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
application = application.initializers(new PropertyPasswordDecodingContextInitializer());
return application.sources(ServiceApplication.class);
}
@Override
protected WebApplicationContext createRootApplicationContext(ServletContext servletContext) {
//project specific config
}
@Bean
public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
return new PropertySourcesPlaceholderConfigurer();
}
}
MVCConfigClass:
@EnableWebMvc
@Configuration
@ComponentScan(basePackageClasses = ServiceApplication.class, includeFilters = @Filter(Controller.class), useDefaultFilters = false)
public class WebMvcConfig extends WebMvcConfigurationSupport {
@Bean
public ViewResolver configureViewResolver() {
InternalResourceViewResolver viewResolve = new InternalResourceViewResolver();
viewResolve.setPrefix("/templates/");
viewResolve.setSuffix(".html");
return viewResolve;
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/templates/**").addResourceLocations("/templates/");
}
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
}
Restful Web Services Class-
@RestController
@RequestMapping(value = "/myapp")
public class TestWebService {
@RequestMapping(value = { "/hello" }, method = { RequestMethod.GET, RequestMethod.POST })
public ModelAndView list(HttpServletRequest request) throws Exception {
// HttpSession session = request.getSession();
System.out.println("Inside Controller");
ModelAndView modelView = new ModelAndView();
ModelMap modelMap = modelView.getModelMap();
modelView.setViewName("/hello");
return modelView;
}
}
ich die obige Ausgabe erhalten beim Aufruf : - http://localhost:9990/springBootApp/myapp/hello
Ein '@ RestController' soll eine Antwort * direkt * zurückgeben, wie in JSON oder XML. Verwenden Sie einen einfachen @ Controller, wenn Sie eine HTML-Vorlage rendern möchten. – chrylis
wird es weitere Methoden geben, die jsons – Saumyaraj
@Saumyaraj zurückgeben, dann sollten Sie diese mit '@ ResponseBody' annotieren oder separate Controller verwenden. – g00glen00b