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