Following this guide, I have configured my Quarkus application to return a custom error page when a file is not found in META-INF/resources/.
@ApplicationScoped
public class FileNotFoundHandler {
@Route(methods = Route.HttpMethod.GET, regex = "^/.+")
void activate404Intercepting(RoutingContext rc) {
((RoutingContextImpl) rc).currentRouter()
.errorHandler(404, errorContext -> errorContext.response()
.sendFile("notfoundpage.html")
);
rc.next();
}
}
This works perfectly fine when I run my code locally with Quarkus in development mode. However when I build an uber jar, the behavior is different: I get a timeout when I try to visit an unknown path.
Why does my uber jar behaves different and how can I fix this? Any help would be greatly appreciated.
After some debugging, I found out that
activate404Interceptingwas invoked in the uber jar, but the notfoundpage.html was not found by the relative path because it was at another location.My solution: