Spring-Boot findet keine JSP-Seiten in der WAR-Datei

Beim Ausführen eines Spring-Boot-Projekts (java -jar /path/to/war.war) werden keine .jsp-Dateien gefunden.

Mit @ResponseBody annotierte Methoden funktionieren einwandfrei. Der View Resolver liefert den korrekten Pfad zu den JSP-Seiten, diese werden jedoch nicht gefunden. Dieses Projekt hat eine Konfigurationsklasse und keine web.xml.

Konfigurationsklasse:

@Configuration
@EnableAutoConfiguration
@EnableWebMvc
@ComponentScan (basePackages = "org.ghc.security.web")
class ScMain extends WebMvcConfigurerAdapter {


    // SpringBoot BootStrap...
    static void main (String[] args) {
        ApplicationContext ctx = SpringApplication.run (ScMain, args)

        System.out.println("Let's inspect the beans provided by Spring Boot:");

        String[] beanNames = ctx.getBeanDefinitionNames();
        Arrays.sort(beanNames);
        beanNames.each { beanName ->
            System.out.println(beanName);
        }
    }


    @Bean
    InternalResourceViewResolver internalResourceViewResolver () {
        InternalResourceViewResolver viewResolver = new InternalResourceViewResolver()
        viewResolver.setPrefix("/WEB-INF/jsp/")
        viewResolver.setSuffix(".jsp")
        viewResolver
    }
}

Regler

@Controller
class Running {

    @RequestMapping ("/alive")  // This works fine
    @ResponseBody
    String amIAlive () {
        "ALIVE!"
    }


    @RequestMapping ("/alive/page")  // Path to page resolved, but file not found!
    ModelAndView amIAlivePage () {
        new ModelAndView("alivepage")
    }
}

Fehlerprotokoll

2013-11-25 09: 08: 28.714 FEHLER 1549 --- [tp1945397783-20] org.apache.jasper.servlet.JspServlet: PWC6117: Datei "% 2FUsers% 2Fnode42% 2FDevelopment% 2Fmock-security-ui% 2Fbuild% 2Flibs" % 2Fmock-security-ui-2.06-SNAPSHOT.war% 2FWEB-INF% 2Fjsp% 2Falivepage.jsp "wurde nicht gefunden

Der Pfad zur WAR-Datei im Protokolleintrag ist korrekt, und der Pfad in der WAR-Datei (WEB-INF / jsp / alivepage.jsp) ist korrekt. Die Antwort ist die gleiche, egal ob Sie Jetty oder Tomcat verwenden (das obige Protokoll stammt von Jetty). Ich habe auch versucht, den Ansichtsauflöser nicht zu verwenden, einen wie oben anzugeben oder den Ansichtsauflöser über Eigenschaften festzulegen. Ich bin total verblüfft, da bis auf dieses kleine Detail alles so aussieht, als würde es funktionieren. Und die mit @ResponseBody-Annotationen versehene Methode im Controller funktioniert einwandfrei.

Wenn jemand irgendwelche Vorschläge hat, würde ich die Eingabe auf jeden Fall schätzen!

Antworten auf die Frage(5)

Ihre Antwort auf die Frage