Добавить пользовательский @Controller в оверлей Maven?

Я работаю над реализацией https://github.com/mitreid-connect/OpenID-Connect-Java-Spring-Server, которая рекомендует расширять и настраивать проект с помощью наложения Maven. Я следовал инструкциям, затем добавил следующий код webapp-overlay/src/main/java/controller/HealthcheckController.java

package controller;

import org.springframework.context.annotation.Primary;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
@Primary
public class HealthcheckController {

    @RequestMapping(value = "/healthcheckwebapp", method = RequestMethod.GET, produces = MediaType.TEXT_PLAIN_VALUE)
    public String getHealthCheck() {
        return "200 OK";
    }
}

Тем не менее, я получаю 404, когда на самом деле пытаюсь добраться до маршрута. Я делаю что-то неправильно?

2 ответа

Он отправляет 404, потому что ищет шаблон с именем "200 ok", если вы хотите дать ответ, используйте @ResponseStatus(HttpStatus.OK) и используйте return для перенаправления в другое место, например return "/index"; чтобы избежать ошибки 404

я надеюсь, что это поможет, потому что я не полностью понял ваш вопрос

На вашем оверлее server-config.xml добавьте этот bean-компонент

<context:component-scan base-package="controller">
    <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller.HealthcheckController " />
</context:component-scan>

И добавьте @ResponseBody аннотация к getHealthCheck()

Я только что прочитал ваш ответ, в этом случае вам просто нужно изменить @Controller на @RestController, в этом случае вам не нужно тело ответа, что-то вроде этого.

import org.springframework.context.annotation.Primary;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@Primary
public class Rest {

    @RequestMapping("/healthcheckwebapp")
    public String getHealthCheck() {
        return "200 OK";
    }

}

Другие вопросы по тегам