Jetty 9(嵌入式):在运行时添加处理程序 [英] Jetty 9 (embedded): Adding handlers during runtime

查看:148
本文介绍了Jetty 9(嵌入式):在运行时添加处理程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有没有办法向正在运行的嵌入式Jetty实例添加处理程序?我们已将旧的基于Jetty 6的项目迁移到Jetty 9,我们需要为插件系统添加和删除动态处理程序...

Is there any way to add handlers to a running embedded Jetty instance? We have migrated an old Jetty 6 based project to Jetty 9 and we need for our plugin system the possibility add and remove dynamically handlers...

请参阅下面的示例.. 。

See the example below...

Server server = new Server();
[...]
server.start();
[...]
Handler[] existingHandler = server.getHandlers();

// There is no more
server.addHandler(newHandler);

// only this you can do, but only if the server is stopped
server.setHandler(newHandler)

注意: newHandler HandlerCollection ...

推荐答案

使用Jetty 9.1.0.v20131115,您可以使用 mutableWhenRunning 上的标志HandlerCollection 构造函数...

With Jetty 9.1.0.v20131115 you can use the mutableWhenRunning flag on HandlerCollection constructor ...

HandlerCollection coll = new HandlerCollection(true);

这将忽略 isStarted()测试在 .setHandlers(Handlers []) .addHandler(处理程序) 来电。

This will ignore the isStarted() tests on the collection itself during .setHandlers(Handlers[]) and .addHandler(Handler) calls.

此行为仅适用于 HandlerCollection 本身,您可以添加单个处理程序,或设置整个处理程序树而不考虑 LifeCycle HandlerCollection

This behavior is only available for the HandlerCollection itself, you can add individual handlers, or set the entire handler tree without regards to the LifeCycle of the HandlerCollection.

例如:

Server server = new Server(8080);
HandlerCollection myhandlers = new HandlerCollection(true);
server.setHandler(myhandlers);

// add some initial handlers
myhandlers.setHandlers(new Handlers[] { helloHandler, indexHandler });

// start server
server.start();

// ... at some point later, during runtime
FooHandler fooHandler = new FooHandler();
fooHandler.start();
myhandlers.addHandler(fooHandler);

BarHandler barHandler = new BarHandler();
barHandler.start();
myhandlers.addHandler(barHandler);

这篇关于Jetty 9(嵌入式):在运行时添加处理程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆