Jetty: Como aninhar HandlerWrapper, HandlerList e ContextHandlerCollection e ContextHandler
Estou tentando criar um servidor API no Jetty.
Eu quero ter várias APIs em rotas parecidas com / apis / api1 / endpoint, / apis / api2 / endpoint, / apis / api3 / endpoint, etc.
Essencialmente, eu tenho um HandlerWrapper, que contém um HandlerList de ContextHandlerCollections que, em essência, apenas contém:
public void handle(...) {
if (uri.startsWith("/apis/")) {
log.info("This is an api request");
this.getHandlerList.handle(...)
} else {
super.handle()
}
}
private HandlerList getHandlerList() {
HandlerList handlerList = new HandlerList();
ContextHandlerCollection contextHandlerCollection = new ContextHandlerCollection();
ContextHandler api1 = new ContextHandler("/apis/api1/endpoint");
api1.setHandler(new Api1Handler());
contextHandlerCollection.addHandler(api1);
handlerList.addHandler(contextHandlerCollection);
return handlerList
}
Agora, quando eu tento fazer:
curl localhost:port/apis/api1/endpoint
Eu recebo um 404 não encontrado, mas vejo nos logs a instrução "Esta é uma solicitação de API".
Alguma dica?
Eu basicamente quero um ContextHandlerCollection para cada api1, api2 etc. E o ContextHandlerCollection deve ser composto de um conjunto de manipuladores específicos de terminais para escolher.
o que estou perdendo?
Felicidades,