java - Serve both Thrift/TServlet and static files from same Jetty server -


i'm trying serve static files , thrift service same jetty server. until have following code:

val server = new server(); val connector = new selectchannelconnector(); connector.setport(4567); server.addconnector(connector);  val servlet_handler = new servletcontexthandler(server,"/thrift",servletcontexthandler.sessions); servlet_handler.addservlet(new servletholder(new somethriftservlet()), "/thrift/*");  val resource_handler = new resourcehandler(); resource_handler.setwelcomefiles(new string[]{ "index.html" }); resource_handler.setresourcebase(".");  val handlers = new handlerlist(); handlers.sethandlers(new handler[] { resource_handler, servlet_handler, new defaulthandler() }); server.sethandler(handlers);  server.start(); server.join(); 

the static files served fine, thrift service keeps giving me 404 errors. doing wrong?


note: code serve static files taken this question, , 'val' types taken care of project lombok, left them in there because think current code more readable.

the crux of problem have wrap resourcehandler in own context, , give 2 (or more) contexts own base path. because resourcehandler has no base path of it's own.

after this, can provide contexts server in contexthandlercollection, determines context use based on longest matching path prefix.

server server = new server();  val connector = new selectchannelconnector(); connector.setport(4567); server.addconnector(connector);  val thr = new somethriftservlet();  val ct0 = new servletcontexthandler(servletcontexthandler.sessions); ct0.setcontextpath("/thr"); ct0.addservlet(new servletholder(thr), "/*");  val rsc = new resourcehandler(); rsc.setdirectorieslisted(true); rsc.setwelcomefiles(new string[]{ "index.html" }); rsc.setresourcebase(".");  val ct1 = new contexthandler(); ct1.setcontextpath("/rsc"); ct1.sethandler(rsc);  val contexts = new contexthandlercollection(); contexts.sethandlers(new handler[] {ct0, ct1, new defaulthandler() });  server.sethandler(contexts);  server.start(); server.join(); 

Comments

Popular posts from this blog

jquery - Invalid Assignment Left-Hand Side -

java - Play! framework 2.0: How to display multiple image? -

gmail - Is there any documentation for read-only access to the Google Contacts API? -