В этом приложении нет явного сопоставления для / error

109

Я использовал maven для создания учебника https://spring.io/guides/gs/uploading-files/
Все используемые мной коды были скопированы.

Приложение может работать, но я получаю сообщение об ошибке:

Страница ошибки Whitelabel Это приложение не имеет явного сопоставления для / error, поэтому вы рассматриваете это как запасной вариант. Вт, 30 июня, 17:24:02 CST 2015 г. Произошла непредвиденная ошибка (тип = не найдено, статус = 404). Нет доступных сообщений

Как я могу это исправить?

Дэн Стив
источник
добавил свой комментарий к записи - вы можете отредактировать его сами. Это лучше, чем комментировать ваш собственный пост
Александр

Ответы:

138

Убедитесь, что ваш основной класс находится в корневом пакете над другими классами.

Когда вы запускаете приложение Spring Boot (то есть класс, помеченный @SpringBootApplication), Spring будет сканировать только классы, расположенные ниже вашего основного пакета классов.

com
   +- APP
         +- Application.java  <--- your main class should be here, above your controller classes
         |
         +- model
         |   +- user.java
         +- controller
             +- UserController.java
виньеш Субаш
источник
4
Выше или на одном уровне?
Мартин Эрлик
21
Я потратил почти 2 часа своей жизни на то, чтобы понять это!
Ракеш
7
Это тоже пробовал. По-прежнему ошибка. По крайней мере, главная страница, то есть localhost: 8080, должна показывать мне домашнюю страницу Tomcat, не так ли? Но и этого не
видно
Спасибо за подсказку. Раньше я был пользователем Eclipse, и там эта конфигурация не была нужна, но теперь я использую IntelliJ, и это было очень обнадеживающим.
Armer B.
@zulkarnainshah Обычная домашняя страница tomcat генерируется WAR, который здесь не указан.
Торбьёрн Равн Андерсен
62

Когда мы создаем загрузочное приложение Spring, мы аннотируем его @SpringBootApplicationаннотациями. Эта аннотация «завершает» многие другие аннотации, необходимые для работы приложения. Одна из таких аннотаций - @ComponentScanаннотация. Эта аннотация сообщает Spring искать компоненты Spring и настраивать приложение для запуска.

Класс вашего приложения должен быть наверху иерархии пакетов, чтобы Spring мог сканировать подпакеты и находить другие необходимые компоненты.

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);
    }
}

Ниже фрагмент кода работает, поскольку пакет контроллера находится в com.test.spring.bootпакете

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!";
    }
}

Ниже фрагмент кода НЕ работает, поскольку пакет контроллера НЕ находится подcom.test.spring.boot пакетом

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!";
     }
 }

Из документации Spring Boot:

Многие разработчики Spring Загрузочного всегда имеют свой основной класс с аннотацией @Configuration, @EnableAutoConfigurationи@ComponentScan . Поскольку эти аннотации очень часто используются вместе (особенно если вы следуете приведенным выше рекомендациям), Spring Boot предоставляет удобную @SpringBootApplicationальтернативу.

@SpringBootApplicationАннотация эквивалентно использования @Configuration, @EnableAutoConfigurationи @ComponentScanс их атрибутами по умолчанию

музыканты
источник
3
Очень красивое объяснение. Спасибо
Лова Читтумури
39

Вы можете решить эту проблему, добавив ErrorControllerв свое приложение. Вы можете сделать так, чтобы контроллер ошибок возвращал нужное вам представление.

Контроллер ошибок в моем приложении выглядит так:

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;
    }
}

Вышеупомянутый класс основан на классе Springs BasicErrorController .

Вы можете создать экземпляр вышеуказанного ErrorControllerв @Configurationфайле следующим образом:

 @Autowired
 private ErrorAttributes errorAttributes;

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

Вы можете переопределить значение ErrorAttributesпо умолчанию , реализовав ErrorAttributes . Но в большинстве случаев атрибутов DefaultErrorAttributes должно быть достаточно.

owaism
источник
1
Ваша ссылка на BasicErrorControllerкласс 404s.
Stephane
@owaism: Ссылка BasicErrorControllerбольше не подходит, вы можете обновить?
HDJEMAI
1
Ссылка на BasicErrorControllerтеперь исправлена.
Axiopisty
15

В моем случае класс контроллера был аннотирован @Controller. Изменив это, чтобы @RestControllerрешить проблему. В основном @RestControllerэто @Controller + @ResponseBody так либо использовать @RestController, либо @Controllerс @ResponseBodyаннотацией к каждому методу.

Некоторые полезные примечания здесь: https://www.genuitec.com/spring-frameworkrestcontroller-vs-controller/

мой ключ
источник
Это работает, но, как показано в примерах по всему Интернету, базовая конфигурация должна работать с @Controller. Кто-нибудь знает об этой причине, почему работает только RestController?
supernova
При аннотации вашего класса @RestControllerон неявно добавляет @ResponseBodyаннотацию, но если вы используете @Controllerаннотацию, вы должны явно добавить эту аннотацию самостоятельно.
Робин Кескисаркка
10

в моем случае это из-за позиции пакета, то есть пакет контроллера должен быть выше пакета основного класса

если мой пакет основного класса - это package co.companyname.spring.tutorial;любой пакет контроллера,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"; 
 }}

после завершения кодирования нажмите загрузочную панель

введите описание изображения здесь

последнее, что нужно сделать, чтобы убедиться, что ваш контроллер отображает или не только консоль, вы должны увидеть что-то smilliar

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

счастливое кодирование

Мина Фаузи
источник
9

Попробуйте добавить зависимость.

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
Sree
источник
2
что это на самом деле делает?
Stealth Rabbi
Я добавил эту зависимость, и она сработала. Также как @StealthRabbi ... Мне также интересно, что это на самом деле делает.
Twindham 01
@StealthRabbi Это добавляет зависимость к структуре шаблонов под названием Thymeleaf, которая является альтернативой и предпочтительным подходом к JSP. Этот ответ не является настоящим ответом, imo, разбрасывание зависимостей не поможет никому, кто действительно интересуется основной проблемой,
Кристиан,
9

Это происходит, когда явная страница ошибки не определена. Чтобы определить страницу ошибки, создайте отображение / error с представлением. например, приведенный ниже код отображается на строковое значение, возвращаемое в случае ошибки.

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";
    }

}
прабхат кумар
источник
Можете ли вы добавить пояснения к своему коду? Почему это решает вопрос, какие части являются решающими?
Нико Хаасе
В этом ответе есть одна особенность, касающаяся Spring Boot, которая поначалу вызвала у меня головную боль. Важно реализовать интерфейс ErrorController Springframework. Если вы создадите конечную точку контроллера, сопоставленную с «/ error», не делая этого, вы получите сообщение об ошибке, сообщающее, что метод уже сопоставлен.
mmaynar1 07
5

Я добавил эту зависимость, и она решила мою проблему.

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

    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
Экене Огикпу
источник
Вот моя теория: если мы используем «@Controller», каким-то образом Spring потребует от нас наличия определенного механизма шаблонов. И в данном случае Thymeleaf. Следовательно, требуется пружина-загрузчик-стартер-тимелист. Если мы используем «@RestController», для Spring Boot не потребуется шаблонизатор. И поэтому он работает без Thymeleaf.
Йоси Прамаджая
4

Я разрабатываю приложение Spring Boot в течение нескольких недель .. И я получил ту же ошибку, что и ниже;

Страница ошибки Whitelabel Это приложение не имеет явного сопоставления для / error, поэтому вы рассматриваете это как запасной вариант. Чт, 18 января, 14:12:11 AST 2018 Произошла непредвиденная ошибка (тип = не найдено, статус = 404). Нет доступных сообщений

Когда я получаю это сообщение об ошибке, я понял, что мой контроллер или класс контроллера отдыха отмечен в моем проекте. Я имею в виду, что все наши пакеты контроллеров не совпадают с пакетом основного класса, который включает аннотацию @SpringBootApplication. Я имею в виду, что вам нужно добавить имя вашего пакета контроллера в аннотацию @ComponentScan к вашему основному классу, который включает аннотацию @SpringBootApplication. Если вы пишете коды ниже ваша проблема будет решена ... Самое главное, вы должны добавить весь пакет вашего контроллера в аннотацию @ComponentScan, как я сделал в приведенном ниже

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);
    }
}

Я надеюсь, что эти коды кому-то помогут ...

Если вы найдете другой способ решить эту ошибку или у вас есть предложения для меня, напишите в комментарии ... спасибо ...

Семих Эркарака
источник
4

В основном классе после настройки "@SpringBootApplication" добавление "@ComponentScan" без каких-либо аргументов у меня сработало !!!

Основной класс:

@SpringBootApplication
@ComponentScan
public class CommentStoreApplication {

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

    }
}

Класс RestController:

@RestController
public class CommentStoreApp {

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

PS: Не упустите возможность запустить команды mvn clean и mvn install перед запуском приложения.

Харика
источник
4

Довольно поздно на вечеринку. Согласно официальной документации Spring «Spring Boot устанавливает белую страницу с ошибкой, которую вы видите в клиенте браузера, если вы сталкиваетесь с ошибкой сервера». https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-customize-the-whitelabel-error-page

  1. Вы можете отключить эту функцию, установив ее server.error.whitelabel.enabled=falseв файле application.yml или application.properties .

2. Рекомендуемый способ - настроить страницу ошибки так, чтобы ее мог понять конечный пользователь. Под ресурсами / шаблонами папке создайте файл error.html и добавьте зависимость в файл pom.xml.

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

Spring автоматически выберет страницу error.html в качестве шаблона ошибки по умолчанию. Примечание: - Не забудьте обновить проект maven после добавления зависимости.

Джогиндер Малик
источник
3

Вы можете получить сообщение об ошибке, т.е.

«Это приложение не имеет явного сопоставления для / error, поэтому вы рассматриваете это как запасной вариант».

Это связано с тем, что он не сканирует ваши классы Controller и Service, которые вы должны указать в своем классе main () следующим образом:

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);
    }
}

Примечание: здесь я указал различные классы, такие как демо, контроллер и сервис, которые нужно сканировать, только тогда они будут работать правильно.

Рупеш Бхарука
источник
3

Вы должны организовать пакеты так, чтобы пакет, содержащий общедоступный статический main (или где вы написали @SpringBootApplication), был отцом всех ваших других пакетов.

Sakgeek
источник
- com.mypackage + nameApplication.java - com.mypachage.model - com.mypachage.controller - com.mypachage.dao
sakgeek
3

По умолчанию весенняя загрузка будет сканировать текущий пакет на предмет определения bean-компонента. Поэтому, если ваш текущий пакет, в котором определен основной класс, а пакет контроллера не совпадает, или пакет контроллера не является дочерним пакетом вашего основного пакета приложения, он не будет сканировать контроллер. Чтобы решить эту проблему, можно включить список пакетов для определения bean-компонента в основной пакет.

@SpringBootApplication(scanBasePackages = {"com.module.restapi1.controller"})

или создать иерархию пакетов, в которой дочерний пакет является производным от основного пакета

package com.module.restapi;
package com.module.restapi.controller
ананд шукла
источник
2

Проблема в том, что вы переходите на localhost: 8080 / вместо localhost: 8080 / upload, как указано в руководстве. Spring Boot имеет страницу ошибок по умолчанию, используемую при переходе к неопределенному маршруту, чтобы не выдавать специфические данные сервера (что можно рассматривать как угрозу безопасности).

У вас есть варианты: посетить правильную страницу, добавить собственную целевую страницу или переопределить белую страницу ошибки .

Чтобы упростить эту конкретную ситуацию, я обновил руководство, теперь в нем используется / вместо / upload.

Gregturn
источник
2

Я знаю, что это не совсем ответ на вопрос, но это первый вопрос, который появляется в Google :)

Проблема («Это приложение не имеет явного сопоставления для / error») появляется при попытке доступа к пользовательскому интерфейсу Swagger.

В моем случае проблемы были вызваны @RestController ("/ endpoint"), который не обрабатывается должным образом с помощью swagger.

Итак, это привело к ошибкам:

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

И это было нормально

@RestController
@RequestMapping("/endpoint")
public class EndpointController {
Элас
источник
2

это может произойти, если вы забудете аннотацию @RestController поверх вашего класса контроллера. import import org.springframework.web.bind.annotation.RestController;

и добавьте аннотацию, как показано ниже

см. простой пример ниже

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!";
    }

}
Ситиджа Пиюман Тева Хеттиге
источник
1

Измените @Controller на @RestController в своем классе контроллера, и все должно пройти гладко.

сверхновая звезда
источник
1

Я тоже получил ту же ошибку и смог устранить ошибку, добавив приведенную ниже зависимость к моему pom.xml.

<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
    <scope>provided</scope>
</dependency>

Причина в том, что мы используем JSP в качестве представления. Контейнер встроенных сервлетов по умолчанию для Spring Boot Starter Web - это tomcat. Чтобы включить поддержку JSP, нам нужно добавить зависимость от tomcat-embed-jasper.

В моем случае я возвращал JSP как представление из контроллера. Надеюсь, этот ответ поможет кому-то, кто борется с той же проблемой.

Суджана
источник
1

Я столкнулся с той же проблемой, используя gradle, и она была решена добавлением следующих зависимостей:

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')

раньше мне не хватало последнего, вызывая ту же ошибку.

Сиддхартха Аттри
источник
У меня была такая же проблема, и мне не хватало плагина tomcat-embed-jasper в pom.xml. И tomcat-embed-jasper важен для рендеринга jsp.
rinilnath
boraji.com/… , это зацепка , чтобы найти, что кот-в-в-
джаспер
1

Я столкнулся с этой проблемой, а позже понял, что мне не хватало @Configurationаннотации в MvcConfigклассе, которая в основном выполняет сопоставление для ViewControllersи setViewNames.

Вот содержимое файла:

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");
   }
}

Надеюсь, это кому-то поможет !!

Арупеш РойЧоудхури
источник
Это сделало это для меня.
Энтони
1

Убедитесь, что у вас есть jasper и jstl в списке зависимостей:

<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>

Вот рабочий стартовый проект - https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples/spring-boot-sample-web-jsp

Автор: Биджу Кунджуммен

Yersin
источник
1

Я должен упомянуть этот способ и дать ссылку на пакеты, и это сработало. Вы можете исключить @EnableAutoConfigurationэту аннотацию, но мне необходимо обойти любые зависимости, связанные с БД.

@SpringBootApplication
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
@ComponentScan(basePackages = {"your package 1", "your package2"})

public class CommentStoreApplication {

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

    }
}
манерный
источник
1

Главный класс должен находиться за пределами древовидной структуры пакетов приложений. Например: пример

Пауло Березини
источник
0

Все, что я сделал для решения такой проблемы, - это упомянул аннотацию @Configuration в классе MVCConfig.

Как этот :

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

У меня была аналогичная ошибка, я использую весеннюю загрузку и скорость, мое решение - проверить файл application.properties, spring.velocity.toolbox-config-location, обнаружил, что это свойство неверно

叶 为 正
источник
0

В моем случае эта проблема возникает при запуске SpringApplication из IntelliJ после его первого запуска с помощью maven.

Чтобы решить проблему, я бегу первым mvn clean. Затем я запускаю SpringApplication из IntelliJ.

Мерт Нухоглу
источник
0

Убедитесь, что ваш файл Main. класс должен быть поверх ваших контроллеров. В случае следующего примера:

Main.class, содержащий:

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

EmployeeController. класс, содержащий:

@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();
    }
}

Если ваш основной класс находится в корневой папке, например, по этому пути: {projectname} / src / main / java / main, убедитесь, что ваши контроллеры ниже вашего основного класса. Например, {projectname} / src / main / java / main / controllers .

Абед Г.
источник
0

В вашем java-файле (скажем: Viper.java) с основным классом добавьте: "@RestController" и @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

Убедитесь, что вы отметили класс контроллера аннотацией @RestController .

Картик Каматх
источник