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,

questionAnswers(1)

yourAnswerToTheQuestion