Что такое Spring REST url моего контроллера? - PullRequest
0 голосов
/ 25 апреля 2018

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

Вот оно:

@RestController
@RequestMapping("/api")
public class MyController {

    @GetMapping("/test")
    public String poll(@RequestParam Long messageId) {
        return "ok";
    }
}

Я пробовал в браузере наэтот URL: http://localhost:8080/api/test?messageId=61

, но я получил ошибку 404

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

Ср 25 апреля 21:23:35 CEST 2018 Произошла непредвиденная ошибка (тип = Не найдено, статус = 404).Нет доступных сообщений

Можете ли вы сказать мне, какой правильный URL для этого контроллера покоя?Спасибо.

РЕДАКТИРОВАТЬ 1: это из журнала, поэтому порт тоже в порядке:

Tomcat started on port(s): 8080 (http) with context path ''

РЕДАКТИРОВАТЬ 2:

spring.datasource.url=jdbc:postgresql://localhost:5432/mydb
spring.datasource.username=xxx
spring.datasource.password=xxx
spring.datasource.driver-class-name=org.postgresql.Driver
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=create-drop

Ответы [ 3 ]

0 голосов
/ 26 апреля 2018

Возможно, вы пропустили название вашего проекта здесь:

http://localhost:8080/[PROJECT_NAME]/api/test?messageId=61
0 голосов
/ 13 июля 2018

Я попал к возможным теориям здесь:

Причина 1: По своему опыту я привык, чтобы все работало так: Для аннотации @GetMapping я набрал бы

@GetMapping("/test/{messageId}")

И тогда я бы изменил ваш метод на:

public String poll(@PathVariable Long messageId){...}

Причина 2: Я думаю, что URL должен быть http://localhost:8080/api/test?61

Надеюсь, это поможет, если ни один из способов не поможет, я призываю вас проверить их вместе.

0 голосов
/ 26 апреля 2018

Попробуйте public String poll(@RequestParam("messageId") Long messageId) {

...