단일보기 응용 프로그램 vaadin 7.7.7, spring-boot 1.5 사용자로부터 uri fragment https :/tld/#! category-name-1을 확인하고 범주 쇼 항목을 존재하고 난 오류가 발생했습니다 (임베디드 바람둥이와) 업데이트 스프링 부팅 1.5 angel이라는 7.7.7 후하지 않을 경우vaadin + spring boot : 요청시 오류 페이지로 전달할 수 없음
VaadinService.getCurrentResponse().sendError(404, "page not found!");
하지만 :
Cannot forward to error page for request [/vaadinServlet/UIDL/] as the response has already been committed. As a result, the response may have the wrong status code. If your application is running on WebSphere Application Server you may be able to resolve this problem by setting com.ibm.ws.webcontainer.invokeFlushAfterService to false
어떻게 내가 만약 angel에서 HTTP 오류 페이지를 보낼 수 있습니다 사용자에게? ErrorPageCutomizer.java
@Component
public class ErrorPageCutomizer implements EmbeddedServletContainerCustomizer {
@Override
public void customize(ConfigurableEmbeddedServletContainer container) {
container.addErrorPages(new ErrorPage(HttpStatus.NOT_FOUND, "/error/404"));
container.addErrorPages(new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/error/500"));
}
}
RestController.java
import org.springframework.boot.autoconfigure.web.ErrorController;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class ErrorHandlingController implements ErrorController {
private static final String PATH = "/error";
@RequestMapping(value = PATH + "/404")
public String error404() {
return "<div style='font-weight:bold; margin-top:200px; text-align:center; font-size:160%;'>Page not found...<br><a href=\"https://tld\">to home</a></div>";
}
@RequestMapping(value = PATH + "/500")
public String error500() {
return "<div style='font-weight:bold; margin-top:200px; text-align:center; font-size:160%;'>500 Internal server error...</div>";
}
@Override
public String getErrorPath() {
return PATH;
}
}
을 의미합니다. Vaadin 8.0.5 및 스프링 부트 1.5.3에서 작동하지 않습니다. –