#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()