2016-06-15 1 views
0

Ich versuche, ein sehr kleines Testprojekt mit SpringMVC einzurichten. Ich habe es geschafft, es funktioniert die JAR-Datei im Zielordner erstellt, wie in this tutorial erläutert. Ich kann jedoch keine WAR-Datei über die IntelliJ IDEA-Konfiguration bereitstellen.Tomcat kann nicht finden Spring Controller

Anwendung:

@SpringBootApplication 
public class Application {   
    public static void main(final String[] args) { 
     SpringApplication.run(Application.class, args); 
    } 
} 

Hello

@Controller 
public class HelloController { 
    @RequestMapping("/greeting") 
    public String greeting(final Model model) { 
     model.addAttribute("name", "bla"); 
     return "greeting"; 
    } 
} 

greeting.html

<!DOCTYPE HTML> 
<html xmlns:th="http://www.thymeleaf.org"> 
<head> 
    <title>Getting Started: Serving Web Content</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 
</head> 
<body> 
    <p th:text="'Hello, ' + ${name} + '!'"/> 
</body> 
</html> 

Run-Konfiguration: Run configuration

Artefakt:

Artifact Struktur und Zielausgabe

Structure and target output

Ich bin ein 404 immer, wenn Sie auf "localhost: 8080/Gruß".

Ich wäre sehr froh, wenn jemand darauf hinweisen könnte, was ich falsch mache.

+1

Haben Sie die [die Anweisungen] (http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto -create-a-deployable-war-file) zum Erstellen einer deploybaren WAR-Datei? –

+0

hast du versucht localhost: 8080/testwebapp/gruß? – mlg

+0

Spring Boot-Anwendungen werden normalerweise nicht als WAR-Dateien, sondern als eigenständige JAR-Dateien erstellt. Gibt es einen besonderen Grund, warum Sie daraus eine WAR-Datei erstellen, oder wussten Sie einfach nicht, dass Sie normalerweise keine WAR-Datei aus einer Spring-Boot-Anwendung erstellen? – Jesper

Antwort

0

Wie auf this comment vorgeschlagen, nahm ich einen Blick auf these instructions. Ich war etwas in meinem Application.java fehlt, nämlich:

public class Application extends SpringBootServletInitializer { 

    @Override 
    protected SpringApplicationBuilder configure(final SpringApplicationBuilder application) { 
     return application.sources(Application.class); 
    } 

    public static void main(final String[] args) { 
     SpringApplication.run(Application.class, args); 
    } 
} 
0

Wie kann ich Ihnen Frühling als standalong Anwendung sehen beginnen

public static void main(final String[] args) { 
     SpringApplication.run(Application.class, args); 
    } 

Tomcat arbeiten nur mit Servlet-Anwendungen. Starten Sie Ihre Spring-App als normale Konsolen-App (Klicken Sie in Idea in main() mit der rechten Maustaste und wählen Sie den Menüpunkt 'run'). anfordern Dann in Browser http://localhost:8080/greeting

spring-boot example

Sie nicht in IDEA müssen Artefakt überhaupt App zu starten.

Also, wenn Sie Frühling Boot als Krieg in Servlet-Container wie Tomcat ausführen möchten dann this doc lesen