私はJettyにapiサーバーを構築しようとしています。Jetty:HandlerWrapper、HandlerList、ContextHandlerCollection、ContextHandlerをネストする方法
私はAが含まれている、基本的に私はHandlerWrapperを持っているなど
、/ APIを/ API1 /エンドポイント、/ APIを/ API2 /エンドポイント、/ APIを/ API3 /エンドポイントのように見えるのルート上に複数のAPIを持つようにしたいです
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
}
を今私が何しようとすると::
curl localhost:port/apis/api1/endpoint
私が見つからない404を取得するが、私はログに声明を参照してください「この本質的にちょうどないことContextHandlerCollectionsのHandlerList apiリクエストです "。
ヒント
私は基本的に、各api1、api2などに対して1つのContextHandlerCollectionを必要とします。そして、ContextHandlerCollectionは、エンドポイント固有のハンドラのセットから選択する必要があります。
私には何が欠けていますか?
乾杯、
。ドキュメントを捜すよりも簡単だったので、私は自分のハンドラを用意するだけでした:P –