Jetty: Verschachteln von HandlerWrapper, HandlerList und ContextHandlerCollection sowie ContextHandler

Ich versuche, einen API-Server auf Jetty zu bauen.

Ich möchte mehrere Apis auf Routen haben, die wie folgt aussehen: / apis / api1 / endpoint, / apis / api2 / endpoint, / apis / api3 / endpoint usw.

Im Wesentlichen habe ich einen HandlerWrapper, der eine HandlerList von ContextHandlerCollections enthält, die im Wesentlichen nur Folgendes bewirkt:

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
}

Jetzt, wenn ich versuche zu tun:

curl localhost:port/apis/api1/endpoint

Ich erhalte eine 404 nicht gefunden, aber ich sehe in den Protokollen die Aussage "Dies ist eine API-Anfrage".

Hinweise?

Ich möchte grundsätzlich eine ContextHandlerCollection für jede API1, API2 usw. Und die ContextHandlerCollection sollte aus einer Reihe von endpunktspezifischen Handlern bestehen, aus denen Sie auswählen können.

Was vermisse ich

Prost

Antworten auf die Frage(2)

Ihre Antwort auf die Frage