Использование @RestController для извлечения данных, но получение страницы с ошибкой белой метки

#spring-boot #rest #jpa

#весенняя загрузка #отдых #jpa

Вопрос:

Я не могу извлечь данные из своей базы данных в формате json. Получение Whitelabel Error Page .

Не уверен, где я ошибаюсь … может кто-нибудь, пожалуйста, поможет решить проблему. Я получаю страницу с ошибкой белой метки в Chrome и в postman

  {
    "timestamp": "2020-12-16T23:10:02.716 00:00",
    "status": 404,
    "error": "Not Found",
    "message": "No message available",
    "path": "/api/customers"
}

 

Класс сущности

 @Entity
@Table(name="employee")
public class Employee {
    
    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    @Column(name="id")
    private int id;
    
    @Column(name="first_name")
    private String firstName;
    
    @Column(name="last_name")
    private String lastName;
    
    @Column(name="email")
    private String email;
    
    
    public Employee(){
        
    }
    

    public Employee(int id, String firstName, String lastName, String email) {
        super();
        this.id = id;
        this.firstName = firstName;
        this.lastName = lastName;
        this.email = email;
    }
    
    
    public Employee(String firstName, String lastName, String email) {
        this.firstName = firstName;
        this.lastName = lastName;
        this.email = email;
    }
    
    //getters amp; setters

}
 

Обслуживание

 public interface RestCurdoService {
    
    public List<Employee> findAll();

}
 

ServiceImpl

 @Service
public class RestCurdoServiceImpl implements RestCurdoService{

    @Autowired
    private RestCurdRepo restCurdRepo;
    
    public List<Employee> findAll() {
        
        return restCurdRepo.findAll();
    }

}

 

Контроллер

 @RestController
@RequestMapping("/api")
public class RestCurdoController {
    
    @Autowired
    private RestCurdoService restCurdoService;
    
    @GetMapping("/customers")
    public List<Employee> findAll() {
        
        List<Employee> theEmployees = restCurdoService.findAll();
        
        return theEmployees;
    }
}
 

application.properties

 spring.datasource.url=jdbc:mysql://localhost:3306/employee_directory?useSSL=falseamp;serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=Ronak@123
server.port=8086
 

pom.xml

 <?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.1</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.IRonak</groupId>
    <artifactId>RestCurdo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>RestCurdo</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>11</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>       
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>
 

Репозиторий

 public interface RestCurdRepo extends JpaRepository<Employee, Integer>{

}

 

Комментарии:

1. Вызывается findAll() ли метод?. При вызове /api/customers есть ли какая-либо ошибка в консоли? public List<Employee> findAll() Достигнут ли метод?

2. я не вижу ошибки в своей консоли, только я получаю страницу с ошибкой белой метки. Это приложение не имеет явного сопоставления для /error , поэтому вы рассматриваете это как запасной вариант. Чт, 17 декабря, 05:26:49 IST 2020 Произошла неожиданная ошибка (тип = Не найден, статус = 404). Сообщение недоступно

3. И достигнут ли метод? Отладьте код или используйте System.err.println("..."); , чтобы проверить, выполняется ли метод. Также вы можете распечатать / отладить theEmployees переменную, чтобы проверить, правильно ли получены данные из БД

4. я не получаю никаких выходных данных в консоли при печати Employee. Можете ли вы сказать мне, почему я не могу получить данные.

5. в службе попробуйте выполнить печать repo.count()