我已经使用 MySQL 启动了一个新的 REST spring boot 应用程序,但我无法使用 postman 注册用户并且无法映射它们
我正在使用 STS 4.3.1, 用于 MySQL 的 xampp, 我看过创建 REST 服务的每个示例。
//我的入口
package com.accounts.rtgsneft;
@SpringBootApplication(scanBasePackages = {"com.account.rtgsneft.controllers","com.account.rtgsneft.dao","com.account.rtgsneft.models","com.account.rtgsneft.services"})
public class RtgsNeftApplication {
public static void main(String[] args) {
SpringApplication.run(RtgsNeftApplication.class, args);
}
}
//我的 Controller
@CrossOrigin(origins = "*", maxAge = 3600)
@RestController
@RequestMapping("/")
public class EmployeeController {
@Autowired
private EmployeeService employeeService;
@PostMapping("/register")
public ResponseEntity<?> RegisterControl(@RequestBody EmployeeMaster employee) {
System.out.println("here:");
try {
employee = employeeService.Register(employee);
} catch (Exception e) {
System.out.println(e.getMessage());
}
return ResponseEntity.ok(employee);
}
@RequestMapping("/error")
public void getError() {
System.out.println("error caught");
}
}
//我的模型
@Component
@Entity
@Table(name = "users")
public @Getter @Setter class EmployeeMaster {
@Id
private Long empNumber;
private String empName;
private String username;
private String empPassword;
private String email;
private String branch;
private String role;
@Override
public String toString() {
return "EmployeeMaster [empNumber=" + empNumber + ", empName=" + empName + ", username=" + username
+ ", empPassword=" + empPassword + ", email=" + email + ", branch=" + branch + ", role=" + role + "]";
}
}
//我的仓库
package com.accounts.rtgsneft.repositories;
@Repository
public interface EmployeeRepository extends JpaRepository<EmployeeMaster, String> {
}
//我的服务接口(interface)和类
package com.accounts.rtgsneft.sevices;
public interface EmployeeService {
public EmployeeMaster Register(EmployeeMaster employeeMaster);
}
package com.accounts.rtgsneft.sevices;
@Component
public class EmployeeServiceImpl implements EmployeeService {
@Autowired
private EmployeeRepository employeeRepo;
@Override
public EmployeeMaster Register(EmployeeMaster employeeMaster) {
return employeeRepo.save(employeeMaster);
}
}
//我的application.properties
spring.datasource.url=jdbc:mysql://localhost:3306/rtgs_neft?useSSL=false&useTimezone=true&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.hibernate.ddl-auto = update
server.port= 8080
//控制台
2019-08-08 17:06:28.132 INFO 9584 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
2019-08-08 17:06:28.134 INFO 9584 --- [ main] c.accounts.rtgsneft.RtgsNeftApplication : Started RtgsNeftApplication in 3.706 seconds (JVM running for 4.289)
2019-08-08 17:06:59.576 INFO 9584 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'
2019-08-08 17:06:59.576 INFO 9584 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
2019-08-08 17:06:59.600 INFO 9584 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 24 ms
控制台没有错误,servlet 已成功派发。 但是当我使用 postman 将请求发布到
时,我无法将我的数据发布到 servletlocalhost:8080/employee/register
最佳答案
您尝试访问的端点配置不正确。
请替换根 @RequestMapping("/")
使用 @RequestMapping("/employee")
。
现在点击这个端点 localhost:8080/employee/register
它会起作用。
关于spring - 请求未在使用嵌入式 tomcat 的 spring boot 中映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57412312/