it-swarm.com.de

Diese Anwendung hat keine explizite Zuordnung für/error

Ich habe Maven benutzt, um das Tutorial zu machen https://spring.io/guides/gs/uploading-files/
Alle Codes, die ich verwendete, wurden kopiert.

Die Anwendung kann ausgeführt werden, aber ich erhalte die Fehlermeldung:

Whitelabel-Fehlerseite Diese Anwendung hat keine explizite Zuordnung für/error, daher wird dies als Fallback angezeigt. Di Jun 30 17:24:02 CST 2015 Es ist ein unerwarteter Fehler aufgetreten (Typ = Nicht gefunden, Status = 404). Keine Nachricht verfügbar

Wie kann ich es reparieren?

62
Deng Steve

Stellen Sie sicher, dass sich Ihre Hauptklasse in einem Stammpaket über anderen Klassen befindet.

Wenn Sie eine Spring Boot-Anwendung ausführen (d. H. Eine mit @SpringBootApplication kommentierte Klasse), durchsucht Spring nur die Klassen unterhalb Ihres Hauptklassenpakets.

com
   +- APP
         +- Application.Java  <--- your main class should be here, above your controller classes
         |
         +- model
         |   +- user.Java
         +- controller
             +- UserController.Java
81
vignesh Subash

Wenn wir eine Spring-Boot-Anwendung erstellen, kommentieren wir sie mit @SpringBootApplication-Anmerkung. Diese Anmerkung "fasst" viele andere notwendige Anmerkungen zusammen, damit die Anwendung funktionieren kann. Eine solche Annotation ist @ComponentScan Annotation. Diese Anmerkung weist Spring an, nach Spring-Komponenten zu suchen und die Anwendung für die Ausführung zu konfigurieren.

Ihre Anwendungsklasse muss in Ihrer Pakethierarchie ganz oben stehen, damit Spring Unterpakete scannen und die anderen erforderlichen Komponenten ermitteln kann.

package com.test.spring.boot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

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

Unterhalb des Codeausschnitts works befindet sich das Controller-Paket unter com.test.spring.boot-Paket

package com.test.spring.boot.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HomeController {

    @RequestMapping("/")
    public String home(){
        return "Hello World!";
    }
}

Unterhalb des Codeausschnitts funktioniert NICHT , da sich das Controller-Paket NICHT unter com.test.spring.boot-Paket befindet

package com.test.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HomeController {

     @RequestMapping("/")
     public String home(){
         return "Hello World!";
     }
 }

Aus der Spring Boot-Dokumentation:

Viele Spring Boot-Entwickler haben ihre Hauptklasse immer mit Anmerkungen versehen mit @Configuration, @EnableAutoConfiguration und @ComponentScan. Da diese Anmerkungen so häufig zusammen verwendet werden (insbesondere, wenn Sie die oben genannten bewährten Methoden befolgen), bietet Spring Boot eine bequeme @SpringBootApplication alternative.

Die Annotation @SpringBootApplication entspricht der Verwendung von @Configuration, @EnableAutoConfiguration und @ComponentScan mit ihrer Standardattribute

37
Somnath Musib

Sie können dieses Problem lösen, indem Sie in Ihrer Anwendung eine ErrorController hinzufügen. Sie können den Fehlercontroller eine Ansicht anzeigen lassen, die Sie benötigen. 

Fehlercontroller in meiner Anwendung sieht wie folgt aus:

import org.springframework.boot.autoconfigure.web.ErrorAttributes;
import org.springframework.boot.autoconfigure.web.ErrorController;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.ServletRequestAttributes;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import Java.util.Map;

/**
 * Basic Controller which is called for unhandled errors
 */
@Controller
public class AppErrorController implements ErrorController{

    /**
     * Error Attributes in the Application
     */
    private ErrorAttributes errorAttributes;

    private final static String ERROR_PATH = "/error";

    /**
     * Controller for the Error Controller
     * @param errorAttributes
     */
    public AppErrorController(ErrorAttributes errorAttributes) {
        this.errorAttributes = errorAttributes;
    }

    /**
     * Supports the HTML Error View
     * @param request
     * @return
     */
    @RequestMapping(value = ERROR_PATH, produces = "text/html")
    public ModelAndView errorHtml(HttpServletRequest request) {
        return new ModelAndView("/errors/error", getErrorAttributes(request, false));
    }

    /**
     * Supports other formats like JSON, XML
     * @param request
     * @return
     */
    @RequestMapping(value = ERROR_PATH)
    @ResponseBody
    public ResponseEntity<Map<String, Object>> error(HttpServletRequest request) {
        Map<String, Object> body = getErrorAttributes(request, getTraceParameter(request));
        HttpStatus status = getStatus(request);
        return new ResponseEntity<Map<String, Object>>(body, status);
    }

    /**
     * Returns the path of the error page.
     *
     * @return the error path
     */
    @Override
    public String getErrorPath() {
        return ERROR_PATH;
    }


    private boolean getTraceParameter(HttpServletRequest request) {
        String parameter = request.getParameter("trace");
        if (parameter == null) {
            return false;
        }
        return !"false".equals(parameter.toLowerCase());
    }

    private Map<String, Object> getErrorAttributes(HttpServletRequest request,
                                                   boolean includeStackTrace) {
        RequestAttributes requestAttributes = new ServletRequestAttributes(request);
        return this.errorAttributes.getErrorAttributes(requestAttributes,
                includeStackTrace);
    }

    private HttpStatus getStatus(HttpServletRequest request) {
        Integer statusCode = (Integer) request
                .getAttribute("javax.servlet.error.status_code");
        if (statusCode != null) {
            try {
                return HttpStatus.valueOf(statusCode);
            }
            catch (Exception ex) {
            }
        }
        return HttpStatus.INTERNAL_SERVER_ERROR;
    }
}

Die obige Klasse basiert auf Springs BasicErrorController class.

Sie können die obige ErrorController wie folgt in einer @Configuration-Datei instanziieren:

 @Autowired
 private ErrorAttributes errorAttributes;

 @Bean
 public AppErrorController appErrorController(){return new AppErrorController(errorAttributes);}

Sie können die Standardvariable ErrorAttributes überschreiben, indem Sie ErrorAttributes implementieren. In den meisten Fällen sollte jedoch das DefaultErrorAttributes ausreichen.

33
owaism

in meinem Fall ist es aufgrund der Paketposition, dh das Paket des Controllers muss über dem Hauptklassenpaket liegen 

wenn mein Hauptklassenpaket package co.companyname.spring.tutorial; ist, sollte jedes Controller-Paket package co.companyname.spring.tutorial.WHAT_EVER_HERE;

package co.companyname.spring.tutorial; // package for main class
@SpringBootApplication
public class FirstProjectApplication {

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


package co.companyname.spring.tutorial.controllers; // package for controllers 

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController 
public class HelloController { 

@RequestMapping("/hello")  
public String hello() {   
 return "Hello, world"; 
 }}

drücken Sie nach Abschluss der Codierung Boot Dashboard

 enter image description here

eine letzte Sache, um sicherzustellen, dass Ihr Controller eine Zuordnung hat oder nicht nur eine Konsole, sollten Sie etwas smilliar sehen 

Mapped "{[/hello]}" onto public Java.lang.String co.companyname.spring.tutorial.controllers.HelloController.hello()

glückliche Kodierung

10
Mina Fawzy

In meinem Fall wurde die Controller-Klasse mit @Controller kommentiert. Das Ändern in @RestController hat das Problem behoben. Im Grunde ist @RestController@Controller + @ResponseBodySo verwenden Sie entweder @RestController oder @Controller mit @ResponseBody Annotation für jede Methode.

Einige nützliche Hinweise hier: https://www.genuitec.com/spring-frameworkrestcontroller-vs-controller/

7
mykey

Fügen Sie die Abhängigkeit hinzu.

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
5
Sree

Ich habe diese Abhängigkeit hinzugefügt und mein Problem gelöst.

<dependency>
    <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
4
Ekene Oguikpu

Möglicherweise erhalten Sie den Fehler, d. H.

"Diese Anwendung hat keine explizite Zuordnung für/error, daher sehen Sie dies als einen Fallback."

Dies liegt daran, dass Ihre Controller & Service-Klassen nicht geprüft werden, die Sie in Ihrer main () - Klasse wie folgt angeben müssen.

package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration
@EnableAutoConfiguration
**@ComponentScan({"com.example.demo", "controller", "service"})**
public class SpringBootMvcExample1Application {
    public static void main(String[] args) {
        SpringApplication.run(SpringBootMvcExample1Application.class, args);
    }
}

Hinweis: Hier habe ich verschiedene Klassen wie Demo, Controller und Service angegeben, die gescannt werden sollen, nur dass es richtig funktioniert.

3
Rupesh Bharuka

In der Hauptklasse hat nach der Konfiguration "@SpringBootApplication" das Hinzufügen von "@ComponentScan" ohne Argumente für mich funktioniert !!!

Hauptklasse :

@SpringBootApplication
@ComponentScan
public class CommentStoreApplication {

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

    }
}

RestController-Klasse:

@RestController
public class CommentStoreApp {

    @RequestMapping("/") 
    public String hello() {
        return "Hello World!";
    }
}

P.S: Verpassen Sie nicht, die Befehle mvn clean und mvn install auszuführen, bevor Sie die Anwendung starten

3
Harika

Dies geschieht, wenn keine explizite Fehlerseite definiert ist. Um eine Fehlerseite zu definieren, erstellen Sie eine Zuordnung von/error mit einer Ansicht . Der folgende Code entspricht einem Zeichenfolgenwert, der im Fehlerfall zurückgegeben wird.

package com.rumango.controller;

import org.springframework.boot.web.servlet.error.ErrorController;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class IndexController implements ErrorController{
    private final static String PATH = "/error";
    @Override
    @RequestMapping(PATH)
    @ResponseBody
    public String getErrorPath() {
        // TODO Auto-generated method stub
        return "No Mapping Found";
    }

}
3
prabhat kumar

Ich entwickle Spring Boot-Anwendung für ein paar Wochen .. Und ich bekam den gleichen Fehler wie unten; 

Whitelabel-Fehlerseite Diese Anwendung hat keine explizite Zuordnung für/error, daher sehen Sie dies als einen Fallback . Do 18. Januar 14:12:11 AST 2018 Es ist ein unerwarteter Fehler aufgetreten (Typ = Nicht gefunden, Status = 404) . Keine Nachricht verfügbar

Wenn ich diese Fehlermassage bekomme, wurde mir klar, dass meine Controller- oder Rest-Controller-Klasse in meinem Projekt definiert ist. Ich meine, alle Controller-Pakete sind nicht das gleiche Paket mit der Hauptklasse, die die Annotation @SpringBootApplication enthält. Ich meine, Sie müssen den Namen Ihres Controller-Pakets zur @ComponentScan-Annotation zu Ihrer Hauptklasse hinzufügen, die die Annotation @SpringBootApplication enthält. Wenn Sie folgende Codes schreiben, wird Ihr Problem gelöst ... Das Wichtigste ist, dass Sie das gesamte Controller-Paket zur @ComponentScan-Annotation hinzufügen müssen, wie ich es in der folgenden Tabelle getan habe

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;

@SpringBootApplication
@ComponentScan({ "com.controller.package1, com.controller.package2, com.controller.package3, com.controller.packageN", "controller", "service" } // If our Controller class or Service class is not in the same packages we have //to add packages's name like this...directory(package) with main class
public class MainApp {
    public static void main(String[] args) {
        SpringApplication.run(MainApp.class, args);
    }
}

Ich hoffe, dass diese Codes jemandem helfen werden ...

Wenn Sie einen anderen Weg finden, um diesen Fehler zu beheben, oder haben Sie einige Vorschläge für mich. Bitte schreiben Sie Kommentare ... Danke ...

2
Semih Erkaraca

Das Problem ist, dass Sie zu localhost navigieren: 8080/statt localhost: 8080/upload wie in der Anleitung beschrieben. Spring Boot verfügt über eine Standardfehlerseite, die verwendet wird, wenn Sie zu einer nicht definierten Route navigieren, um zu vermeiden, dass serverseitige Details angezeigt werden (was als Sicherheitsrisiko betrachtet werden kann).

Sie haben die Möglichkeit, entweder die rechte Seite aufzurufen, eine eigene Zielseite hinzuzufügen oder die weiße Fehlerseite außer Kraft zu setzen .

Um diese besondere Situation zu vereinfachen, habe ich das Handbuch so aktualisiert, dass es/anstelle von/upload verwendet.

2
gregturn

Stellen Sie sicher, dass Sie Jasper und JSTL in der Liste der Abhängigkeiten haben:

<dependency>
    <groupId>org.Apache.Tomcat.embed</groupId>
    <artifactId>Tomcat-embed-jasper</artifactId>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
</dependency>

Hier ist ein Startprojekt - https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples/spring-boot-sample-web-jsp

Urheber: Biju Kunjummen

2
Yersin

Sie müssen die Pakete so organisieren, dass das Paket, das public static main enthält (oder in dem Sie @SpringBootApplication geschrieben haben), der Vater aller Ihrer anderen Pakete ist.

1
sakgeek

Ich weiß, es ist nicht genau eine Antwort auf die Frage, aber diese Frage steht zuerst bei Google :)

Problem ("Diese Anwendung hat keine explizite Zuordnung für/error") wird angezeigt, wenn Sie versuchen, auf die Swagger-Benutzeroberfläche zuzugreifen.

In meinem Fall wurden Probleme durch @RestController ("/ Endpoint") verursacht, der von Swagger nicht richtig gehandhabt wird.

Das führte zu Fehlern:

@RestController("/endpoint")
public class EndpointController {

Und das war gut so

@RestController
@RequestMapping("/endpoint")
public class EndpointController {
1
Elas

Ich hatte einen ähnlichen Fehler, ich benutze den Spring Boot und die Geschwindigkeit. Meine Lösung ist die Datei application.properties zu überprüfen

0
叶为正

In diesem Tutorial wird der Controller mit @Controller kommentiert, der zum Erstellen eines Map of Model-Objekts und zum Suchen einer Ansicht verwendet wird. @RestController gibt jedoch einfach das Objekt zurück, und die Objektdaten werden direkt als HTTP- oder XML-Anweisungen in die HTTP-Antwort geschrieben Wenn Sie die Antwort anzeigen möchten, verwenden Sie @RestController oder verwenden Sie @ResponseBody ebenfalls mit @Controller.

@Controller
@ResponseBody

Lesen Sie mehr: https://javarevisited.blogspot.com/2017/08/unterschied-zwischen-restcontroller-und-controller-annotations-spring-mvc-rest.html#ixzz5WtrMSJHJ

0
berzerk

Ich habe auch den gleichen Fehler erhalten und konnte den Fehler durch Hinzufügen der folgenden Abhängigkeit zu meiner pom.xml beheben.

<dependency>
    <groupId>org.Apache.Tomcat.embed</groupId>
    <artifactId>Tomcat-embed-jasper</artifactId>
    <scope>provided</scope>
</dependency>

Grund ist, dass wir JSP als Ansicht verwenden. Der eingebettete Standard-Servlet-Container für Spring Boot Starter Web ist Tomcat. Um die Unterstützung für JSPs zu aktivieren, müssen Sie eine Abhängigkeit von Tomcat-embed-jasper hinzufügen.

In meinem Fall habe ich eine JSP als Ansicht vom Controller zurückgegeben. Diese Hoffnung hilft jemandem, der mit demselben Problem zu kämpfen hat.

0
Sujana

Beim Ausprobieren einer Spring Boot-Beispielanwendung mit Thymeleaf ist ein ähnlicher Fehler aufgetreten. Die verschiedenen Lösungen haben leider nicht funktioniert.

Mein Fehler war, dass der zurückgegebene String von der Controller-Methode keine entsprechende HTML-Ansicht hatte.

Möglicherweise haben Sie etwas verpasst, oder der Dateiname enthält Tippfehler. Wie im Beispiel im Controller gezeigt

@GetMapping("/")
public String listUploadedFiles(Model model) throws IOException {

    model.addAttribute("files", storageService.loadAll().map(
            path -> MvcUriComponentsBuilder.fromMethodName(FileUploadController.class,
                    "serveFile", path.getFileName().toString()).build().toString())
            .collect(Collectors.toList()));

    return "uploadForm";
}

der Rückgabewert sollte mit dem Namen der HTML-Datei unter übereinstimmen

src/main/resources/templates/uploadForm.html

Thymeleaf sucht nach der Datei mit demselben Namen wie im Rückgabetyp und zeigt die Ansicht an. Sie können es mit jeder HTML-Datei versuchen und den Dateinamen in der return-Anweisung angeben, damit die entsprechende Ansicht gefüllt wird.

0
Vishal Vijayan

Mit Spring Boot und der Datei application.properties musste ich die Struktur meines Projekts ändern. JSP-Dateien sollten sich an diesem Speicherort befinden: \ src\main\resources\META-INF\resources\WEB-INF\jsp. Nach dieser Änderung funktioniert mein Projekt ... Ich habe hier eine Lösung gefunden: https://www.logicbig.com/tutorials/spring-framework/spring-boot/boot-serve-dynamic. html

0
Tom

Stellen Sie sicher, dass Sie Ihre View oder JSP oder HTML nicht in WEB-INF oder META-INF platzieren

Nennen Sie diese Details sorgfältig:

spring.mvc.view.prefix
spring.mvc.view.suffix
0
Sid

Ändern Sie @Controller in @RestController in Ihrer Controller-Klasse und alles sollte reibungslos funktionieren.

0
supernova

Prüfen Sie, ob Sie die Controller-Klasse mit @RestController Annotation markiert haben.

0
Karthik Kamath

Wenn Sie die Schnittstelle mit requestMapping mit Anmerkungen versehen haben, stellen Sie sicher, dass Sie auch die Klasse mit Anmerkungen versehen, die die Schnittstelle mit @Component implementiert.

0
user11308342

Es kann vorkommen, dass Ihre Spring-App die Spring-Komponente nicht findet und sie nicht im Sprint-Container initialisiert wird. Sie können die Komponente mithilfe von @ComponentScan zusammen mit Ihrer @SpringBootApplication wie im folgenden Beispiel hinzufügen

@SpringBootApplication
@ComponentScan({"model", "service"})
class MovreviewApplication {

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

}

im obigen Beispiel sind Modell und Service die Pakete in meiner App.

0
Pavan T

Ich war mit dem gleichen Problem konfrontiert.

compile('org.springframework.boot:spring-boot-starter-data-jpa')
compile('org.springframework.boot:spring-boot-starter-web')
testCompile('org.springframework.boot:spring-boot-starter-test')
compile('org.Apache.Tomcat.embed:Tomcat-embed-jasper')

früher habe ich den letzten vermisst, der den gleichen Fehler verursacht hat.

0

In Ihrer Java-Datei (sprich: Viper.Java) mit der Hauptklasse add: "@RestController" Und @RequestMapping ("/")

@SpringBootApplication
@RestController
public class Viper {

  @RequestMapping("/")

   public String home(){
          return "This is what i was looking for";                      
     }

public static void main( String[] args){

   SpringApplication.run(Viper.class , args);
}

}
0
Mayur Chavan

Ich war mit diesem Problem konfrontiert und merkte später, dass mir die @Configuration-Annotation in der MvcConfig-Klasse fehlte, die im Wesentlichen das Mapping für ViewControllers und setViewNames vornimmt.

Hier ist der Inhalt der Datei:

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
**@Configuration**
public class MvcConfig implements WebMvcConfigurer{
   public void addViewControllers(ViewControllerRegistry registry)
   {
      registry.addViewController("/").setViewName("login");
      registry.addViewController("/login").setViewName("login");
      registry.addViewController("/dashboard").setViewName("dashboard");
   }
}

Hoffe das hilft jemandem !!

dies bedeutet, dass Sie versuchen, auf die Seite zuzugreifen, die nicht vorhanden ist . Angenommen, Ihre JSP-Datei befindet sich jetzt unter /webapp/home.jsp, wenn Sie @RequestMapping ("/ home") in Ihrem Code verwenden und "home.jsp" zurückgeben "; dann erhalten Sie diese Fehlermeldung, wenn Sie versuchen, über localhost: port/zuzugreifen. Wenn Sie localhost: port/home versuchen, wird kein Fehler angezeigt Sie können dies beheben, indem Sie Ihr @RequestMapping ("/") hier überprüfen. mapping_path der Seite, auf die Sie zugreifen möchten . Sie können auch versuchen, eine Abhängigkeit von Tomcat jaspher von der Maven-Abhängigkeit hinzuzufügen

0
Jasbin karki

In meinem Fall tritt dieses Problem auf, wenn Sie die SpringApplication von IntelliJ aus ausführen, nachdem Sie es zuerst mit maven ausgeführt haben.

Um das Problem zu lösen, starte ich zuerst mvn clean. Dann starte ich SpringApplication von IntelliJ aus. 

0
Mert Nuhoglu

dies kann passieren, wenn Sie die @RestController-Anmerkung oben auf Ihrer Controller-Klasse vergessen.

und fügen Sie die Anmerkung wie folgt hinzu 

verweisen wir auf das einfache Beispiel unten 

import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RequestMapping;


@RestController
public class HelloController {
@RequestMapping("/")
    public String index() {
        return "Greetings from Spring Boot!";
    }

}

Stellen Sie sicher, dass Ihre Main. class sich auf Ihren Controllern befindet. Im Falle des folgenden Beispiels:

Hauptklasse mit:

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

EmployeeController. class enthaltend:

@RestController
public class EmployeeController {
    @InitBinder
    public void setAllowedFields(WebDataBinder dataBinder) {
        dataBinder.setDisallowedFields("id");
    }

    @RequestMapping(value = "/employee/save", method = RequestMethod.GET)
    public String save(){
        Employee newEmp = new Employee();
        newEmp.setAge(25);
        newEmp.setFirstName("Pikachu");
        newEmp.setId(100);
        return "Name: " + newEmp.getFirstName() + ", Age: " + newEmp.getAge() + ", Id = " + newEmp.getId();
    }
}

Befindet sich Ihre Hauptklasse im Stammordner, so sieht der Pfad wie folgt aus:{Projektname}/src/main/Java/main, und stellen Sie sicher, dass Ihre Controller unter Ihrer Main-Klasse liegen. Zum Beispiel{Projektname}/src/main/Java/main/controller.

0
Abed G.

Alles, was ich getan habe, um dieses Problem zu lösen, ist die Anmerkung @Configuration in der MVC Config Class zu erwähnen. 

Wie dieser :

package com.example;

/**
 * Created by sartika.s.hasibuan on 1/10/2017.
 */
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

@EnableAutoConfiguration
@Configuration
@ComponentScan
public class MvcConfig extends WebMvcConfigurerAdapter {

    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/home").setViewName("home");
        registry.addViewController("/").setViewName("home");
        registry.addViewController("/hello").setViewName("hello");
        registry.addViewController("/login").setViewName("login");
    }

}
0